我试图在我的NodeJS模块中添加两个NodeJS。我为我的模块尝试了以下代码:
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> (....请问我如何解决这个问题?有一些堆栈溢出问题询问如何在module.exports模块中使用多个NodeJS。但答案如下:
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');发布于 2018-07-25 14:07:04
你好像在找
let one = '';
module.exports = function(msg) {
console.log(data+'::'+msg);
};
module.exports.one = function(data){
one = data;
};注意,exports变量只是module.exports对象的别名,在用函数覆盖该变量时,会丢弃它的内容。您需要将one方法放在您的主函数上。
发布于 2018-07-25 14:04:37
当您执行以下操作时:
module.exports.one = function(data){
const one = data;
};
module.exports = function(msg) {
console.log(data+'::'+msg);
};首先将属性one分配给模块对象(exports.one=...)。然后,使用第二行重新遍历整个module.exports对象,从而删除所连接的第一个函数。
你可以这样解决:
module.exports.one = function(data){
const one = data;
};
module.exports.two = function(msg) {
console.log(data+'::'+msg);
};然后,您可以调用其他模块中的函数,如下所示:
var myModule = require('./mymodule.js');
myModule.one(arg1) // calls first function
myModule.two(arg2) // calls second functionhttps://stackoverflow.com/questions/51520696
复制相似问题