当我尝试从模块中获取login
中的函数server.js
时,我收到错误:我的node.js应用上的“登录未定义” module1.js
需要data
:
//module1.js
module.exports = (data) => {
var login = function(data){
console.log(data)
}
exports.login = login;
};
//server.js
var test = require(__dirname + '/app/modules/module1.js')(data);
test.login();
答案 0 :(得分:2)
当节点开始执行模块代码时,exports
和module.exports
都指向同一个对象。重新分配(data)=>{...}
时,您将指定将从模块返回的另一个对象。在你的情况下,它是一个函数exports
。 module.exports = (data) => {
var login = function(){
console.log(data)
}
return {login: login};
};
变量始终指向旧模块对象。
您需要以下内容:
module.exports = (data) => {
return {login: function(){
console.log(data)
}};
};
或者这样缩短:
exports
或者,如果要导出这两个函数,则需要将它们添加到Switch
对象。