我有一个功能:
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() {...})
以登录到控制台。
答案 0 :(得分:0)
这似乎是一个旧的&#34;错误&#34;在nwjs中,其中所需模块接收的节点版本不同于console
而不是WebKit版本。
此处描述了错误:https://github.com/nwjs/nw.js/issues/196
@karlrwjohnson建议的解决方法是将console
作为参数传递给模块函数。