这是我正在做的简化代码示例。
foo.js(在lib目录中):
exports.foo = function foo() {
this.bar = function() {
console.log("foobar!");
};
};
main.js:
var foo = require("foo");
exports.main = function(options, callbacks) {
foo.bar();
}
CMD:
>cfx run
[...]
error: An exception occurred.
[...]
TypeError: foo.bar is not a function
所以基本上,我似乎无法对我导入的模块做任何事情。我在这里做错了吗?我尝试用几种不同的方式格式化foo()函数,但它们似乎都没有做任何事情。
谢谢!
答案 0 :(得分:5)
require()
函数的结果实际上是模块的exports
变量 - 而您没有定义exports.bar
。因此,要么在foo.foo.bar()
中致电main.js
,要么稍微不同地导入模块:
var {foo} = require("foo");
这与:
相同var foo = require("foo").foo;
另外,正如erikvold在回答中指出的那样,你并没有真正定义exports.foo.bar
。
答案 1 :(得分:2)
尝试:
var foo = exports.foo = function foo() {
};
foo.bar = function() {
console.log("foobar!");
};
您的示例在任何情况下都不起作用。