我试图在nodejs模块中添加两个module.exports
。我尝试了以下模块代码:
exports.one = function(data){
const one = data;
};
module.exports = function(msg) {
console.log(one+'::'+msg);
};
下面是index.js的代码:
var myModule = require('./mymodule.js');
myModule.one('hi');
myModule('bro');
myModule('Dear');
myModule('Dude');
我希望它将以下数据登录到控制台:
hi bro
hi Dear
hi Dude
但控制台上说:
TypeError: myModule.one is not a function
at Object.<anonymous> (....
请问我该如何解决这个问题?存在堆栈溢出问题,询问如何在nodejs模块中使用多个module.exports。但答案如下:
exports.one = function (){};
exports.two = function (){};
但是如果我用那代码,我必须用
myModule.one('hi');
myModule.two('bro');
myModule.two('Dear');
myModule.two('Dude');
而不是:
myModule.one('hi');
myModule('bro');
myModule('Dear');
myModule('Dude');
最佳答案
你好像在找
let one = '';
module.exports = function(msg) {
console.log(data+'::'+msg);
};
module.exports.one = function(data){
one = data;
};
注意,
exports
变量只是module.exports
对象的别名,当用函数覆盖它时,您丢弃了它的内容。您需要将one
方法放在主函数上。关于javascript - NodeJS的多个module.exports,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51520696/