我有多个模块,我做了:
// module1.js
module.exports = function() {
...
}
// module2.js
module.exports = function() {
...
}
app.js中的
m1 = require('./module1')
m2 = require('./module2')
m1.method()
m2.method()
我得到TypeError。然后我最终导出了两个模块中的方法。
有没有一种方法可以导出多个模块而不是显式导出单个方法?
答案 0 :(得分:0)
您好像试图将require()
undefined
变量传递两次。 require()需要将一个字符串作为参数来确定要加载的模块。
如果其他两个模块与app.js位于同一目录中,请尝试
m1 = require('./module1')
m2 = require('./module2')
修改强> 你忘记做的是
m1 = new require('./module1')()
m2 = new require('./module2')()
假设你的模块看起来像:
module.exports = function() {
this.method = function(){}
}
就个人而言,我只是从我的模块中返回一个对象文字而不是函数:
module.exports = {
method1: function(){},
method2: function(){}
}
然后我可以调用模块导出中的方法,如:
m1 = require('./module1');
m1.method1();