如何在nodejs内部调用导出的函数?

时间:2018-06-16 11:34:03

标签: javascript node.js module export

我试图在nodejs模块中调用导出的函数。

exports.sayHello = function (msg) {
 console.log(msg) 
}

function run(msg) {
  this.sayHello(msg);
}

run("hello");

当我运行此脚本时,我得到 TypeError:this.sayHello不是函数

1 个答案:

答案 0 :(得分:3)

只需将其单独声明与导出它(并且在调用它时不要使用this,您还没有将它附加到对象上):

function sayHello(msg) {
 console.log(msg) 
}
exports.sayHello = sayHello;

function run(msg) {
  sayHello(msg);
}

run("hello");

那就是说,你可以通过exports来调用它:

exports.sayHello = function (msg) {
 console.log(msg) 
}

function run(msg) {
  exports.sayHello(msg); // <===
}

run("hello");

...但这对我来说似乎有点迂回,虽然我告诉它可以帮助进行测试,例如in this example