javascript - 为什么我的基本功能不起作用(在 NodeJS 中)?
问题描述
我正在做一个 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 不是函数”。我已经确保 require 是正确的路径。那么为什么它不起作用呢?
解决方案
发生这种情况是因为该方法只能由 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 "";
}
推荐阅读
- sql-server-2014 - SQL 数据库图 - SQL Server 2014?
- amazon-web-services - 在 Cognito 内置登录页面中显示用户名以外的其他内容
- javascript - 为什么 XMLHTTP 请求不适用于我的服务器?
- django - 如何使用 Django 将自定义对象传递给表单
- python - 如何更改 Odoo 10 中模型的默认搜索字段?
- javascript - 图形的随机颜色。帆布。javascript
- reactjs - 使用 redux-thunk 捕获错误
- bash - Bash 将多行文件转换为 n 列 CSV
- youtube-api - 关于从服务器或客户端使用 YouTube 数据 API 的困惑
- android - androidTest 包中 ndk-stack 的 obj 文件在哪里