module.exports 函数的行为与常规函数不同
module.exports function behaves differently than regular function
我有一个功能:
test = function() {
console.log("hello");
return "goodbye";
}
当我调用它时,它的行为符合预期:
-> test()
hello
<- "goodbye"
但是,如果我尝试将此函数放在一个名为 "tester.js":
的单独文件中
module.exports = {
test: function() {
console.log("hello");
return "goodbye";
}
};
...它的行为方式不同。 console.log
语句不输出:
var tester = require('./tester');
-> tester.test()
<- "goodbye"
即使我在控制台输入 tester.test
和 test
,它们看起来也一样。
为什么会这样,我该如何解决?请注意,这是一个玩具示例;在我的实际代码中,我返回一个对象,我在其中修改了 object.stdout.on('data', function() {...})
以登录到控制台。
这似乎是 nwjs 中的旧 "bug",其中所需的模块接收不同的节点版本 console
而不是 WebKit 版本。
错误描述如下:https://github.com/nwjs/nw.js/issues/196
@karlrwjohnson 建议的解决方法是将 console
作为参数传递给您的模块函数。
我有一个功能:
test = function() {
console.log("hello");
return "goodbye";
}
当我调用它时,它的行为符合预期:
-> test()
hello
<- "goodbye"
但是,如果我尝试将此函数放在一个名为 "tester.js":
的单独文件中module.exports = {
test: function() {
console.log("hello");
return "goodbye";
}
};
...它的行为方式不同。 console.log
语句不输出:
var tester = require('./tester');
-> tester.test()
<- "goodbye"
即使我在控制台输入 tester.test
和 test
,它们看起来也一样。
为什么会这样,我该如何解决?请注意,这是一个玩具示例;在我的实际代码中,我返回一个对象,我在其中修改了 object.stdout.on('data', function() {...})
以登录到控制台。
这似乎是 nwjs 中的旧 "bug",其中所需的模块接收不同的节点版本 console
而不是 WebKit 版本。
错误描述如下:https://github.com/nwjs/nw.js/issues/196
@karlrwjohnson 建议的解决方法是将 console
作为参数传递给您的模块函数。