我正在处理一个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不是函数”。我确保需求是正确的道路。那么为什么它不起作用?
答案 0 :(得分:1)
发生这种情况是因为该方法只能由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 "";
}
答案 1 :(得分:0)
对于主文件#include <iostream>
#include <string>
int main()
{
std::string password = "gang";
std::string input;
do
{
std::cout << "Enter password here: ";
if ( not ( std::cin >> input ) or ( input != password ) )
{
std::cin.clear();
std::cout << "Password incorrect\n";
}
} while ( input != password );
std::cout << "Password correct" << std::endl;
return 0;
}
:
cvs -d :pserver:anonymous@cvs.infodrom.org:/var/cvs/$repository login
Logging in to :pserver:anonymous@cvs.infodrom.org:2401/var/cvs/config
CVS password:
cvs [login aborted]: unrecognized auth response from cvs.infodrom.org: /usr/bin/cvs: unrecognized option '--allow_root=/var/cvs/debian'
此必需文件test.js
:
var gs = require('./gs1')
gs.myfunction();
您应该得到:
gs1.js