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.testtest,它们看起来也一样。

为什么会这样,我该如何解决?请注意,这是一个玩具示例;在我的实际代码中,我返回一个对象,我在其中修改了 object.stdout.on('data', function() {...}) 以登录到控制台。

这似乎是 nwjs 中的旧 "bug",其中所需的模块接收不同的节点版本 console 而不是 WebKit 版本。

错误描述如下:https://github.com/nwjs/nw.js/issues/196

@karlrwjohnson 建议的解决方法是将 console 作为参数传递给您的模块函数。