代码之家  ›  专栏  ›  技术社区  ›  Jeff

单元导出函数的行为不同于常规函数

  •  0
  • Jeff  · 技术社区  · 8 年前

    我有一个功能:

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

    1 回复  |  直到 8 年前
        1
  •  0
  •   Jeff    8 年前

    这似乎是nwjs中的一个老“bug”,其中所需模块接收的节点版本不同 console 而不是WebKit版本。

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

    @karlrwjohnson建议的解决方法是通过 安慰 作为模块函数的参数。

    推荐文章