我试图在nodejs模块中调用导出的函数。
exports.sayHello = function (msg) {
console.log(msg)
}
function run(msg) {
this.sayHello(msg);
}
run("hello");
当我运行此脚本时,我得到 TypeError:this.sayHello不是函数
答案 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。