我正在尝试在nodejs模块内调用导出的函数。

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

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

run("hello");


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

最佳答案

只需声明它与导出它分开即可(并且在调用它时不要使用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");


...但这对我来说似乎有些round回,尽管我被告知它可以帮助进行测试,例如in this example

关于javascript - 如何在Node.js内部调用导出的函数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50887537/

10-15 18:29