基本上我的nodejs / javascript代码只适用于我的本地电脑,而不适用于我的vps。 我已经安装了所有相同的node_modules,并且所有代码都是相同的。以下是我的代码示例:
//Launcher.js
var foo = require("./foo.js");
var oof= new oof();
oof.foo()
//foo.js
function oof() {
this.foo = false;
}
oof.prototype.foo= function() {
this.foo = true;
}
module.exports = oof;
它是这样的,我得到的错误信息是
TypeError: oof.foo is not a function
任何帮助都会受到极大的欢迎。
答案 0 :(得分:0)
我不知道你的机器是如何工作的,也许我错过了什么,因为Launcher.js
的正确语法是:
var foo = require("./foo.js");
// The modules in node.js are not exported in the global namespace,
// you must reference them with the variable name you assigned them.
var oof = new foo();
oof.foo();
答案 1 :(得分:0)
您的foo
属性不是函数,因此您无法调用它。在构造函数中设置prototype
时,您将覆盖this.foo = false
定义。现在,foo
属性只是boolean
值,因此您无法将其称为函数。
这个JS在任何地方都无法工作。
我建议您更改存储true
和false
值的属性名称,以便它与方法foo
不冲突:
//foo.js
function oof() {
this._foo = false;
}
oof.prototype.foo = function() {
this._foo = true;
}
module.exports = oof;
答案 2 :(得分:0)
事实证明我的计算机正在运行节点版本5.10和我的vps 4,修复这个只是在两台计算机上运行节点-v以检查版本是否匹配,如果没有更新/降级vps的节点版本所以它匹配你的自己的。