gpt4 book ai didi

node.js - require.main.require 有效,但不在 Mocha 测试中

转载 作者:行者123 更新时间:2023-12-04 03:37:05 26 4
gpt4 key购买 nike

我编写了一个全局函数来要求我的应用程序/框架的某些文件:

global.coRequireModel = function(name) {
// CRASH happens here
return require.main.require('./api/_co' + name + '/_co' + name + '.model');
}

该模块位于/components/coGlobalFunctions 中。

我的主应用 app.js 中需要它,如下所示:
require('./components/coGlobalFunctions');

然后在其他模块中使用我使用的框架中的“某物”:
var baseScheme = coRequireModel('Base');

这有效,但不适用于 Mocha 测试,它在 require.main.require 调用之前给我一个“错误:找不到模块”。

似乎测试来自另一个源文件夹。但我认为 require.main.require 会消除必须相对链接到模块的方面。

编辑:

位于 api/user 中的示例测试文件:
var should = require('should');
var app = require('../../app');
var User = require('./user.model');
...

最佳答案

require.main指向直接从 Node 运行的模块。所以,如果你运行 node app.js ,然后 require.main将指向 app.js .另一方面,如果您使用 mocha 运行它,然后 require.main将指向 Mocha 。这可能是您的测试失败的原因。

the node docs的更多细节。

关于node.js - require.main.require 有效,但不在 Mocha 测试中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30048108/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com