Nodejs可以在本地机器上运行,但在VPS上它可以运行

时间:2016-05-01 10:38:54

标签: javascript node.js

基本上我的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

任何帮助都会受到极大的欢迎。

3 个答案:

答案 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在任何地方都无法工作。

我建议您更改存储truefalse值的属性名称,以便它与方法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的节点版本所以它匹配你的自己的。