我想在另一个模块中使用一个模块功能
文件main.js
var _ = require("./underscore.js");
var foo = require("./bar.js");
foo.publish(...);
文件 bar.js
(function(e) {
var array = [...];
e.publish = function(t, args) {
_.each(array, function(...) {...});
});
})(exports);
我尝试了几种变体,但我不确定解决此错误的最佳方法:
ReferenceError: _ is not defined
最佳答案
是的,对于您的示例,您应该在需要该变量的每个模块中使用。
var _ = require("./underscore.js");
但是,如果您需要在多个模块之间传输一个对象实例,您可以使用process对象使其成为全局对象。但这是糟糕的做法。
process._ = require("./underscore.js");
在模块之间传递对象实例的好方法是将它们作为函数参数传递,但是您需要更改 bar.js 以返回工厂函数,而不是对象本身。
module.exports = function(_) {
var e = {};
var array = [...];
e.publish = function(t, args) {
_.each(array, function(...) {...});
});
return e;
}
在 main.js 中:
var _ = require("./underscore.js");
var foo = require("./bar.js")(_);
foo.publish(...);
我希望你明白了。
关于node.js - 如何在 Node.js require() 中使用另一个模块中的一个模块功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13039825/