module.exports函数的行为与常规函数不同

时间:2018-01-26 22:44:57

标签: javascript node.js nwjs

我有一个功能:

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() {...})以登录到控制台。

1 个答案:

答案 0 :(得分:0)

这似乎是一个旧的&#34;错误&#34;在nwjs中,其中所需模块接收的节点版本不同于console而不是WebKit版本。

此处描述了错误:https://github.com/nwjs/nw.js/issues/196

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