我正在开发一个nodejs项目,并且有一个小问题。我知道这个问题并不难解决,但是我已经搜索了几个小时,但仍然不知道如何解决这个问题:
var gs = require('./gs1');
if (uncompressedDigitalLinkInput != "") {
try {
this.error3="";
console.log("Test");
gs.myfunction();
}
catch(err) {
this.error3=err+"\n"+err.stack;
return "";
}
}
else {
return "";
}
问题是这行:
console.log("Test");
gs.myfunction();
实际上,在这两个之中,只有console.log有效。另一个没有。
这是“ gs.myfunction”的代码
class GS1DigitalLinkToolkit {
function myfunction(){
console.log('Function called');
}
}
module.exports.myfunction = myfunction;
它告诉我“ gs.myfunction不是函数”。我确保需求是正确的道路。那么为什么它不起作用呢?
最佳答案
发生这种情况是因为该方法只能由GS1DigitalLinkToolkit的实例调用。两种可能的解决方案可以是:
1)将方法设为静态并将其导出为
class GS1DigitalLinkToolkit {
static myfunction() {
console.log('Function called');
}
}
module.exports.myfunction = GS1DigitalLinkToolkit.myfunction
2)导入类,创建实例并在其上调用方法
class GS1DigitalLinkToolkit {
function myfunction(){
console.log('Function called');
}
}
module.exports.gsclass = GS1DigitalLinkToolkit;
和
var gs = require('./gs1');
if (uncompressedDigitalLinkInput != "") {
try {
this.error3="";
console.log("Test");
gs1 = new gs.gsclass();
gs1.myfunction();
}
catch(err) {
this.error3=err+"\n"+err.stack;
return "";
}
}
else {
return "";
}