OpenShift上的Node JS app给出错误503

时间:2015-03-22 18:05:46

标签: node.js git error-handling openshift

所以我为一个监控页面加载速度的大学项目创建了一个 NodeJS 应用程序。为了记录上述速度,我需要人们去网页应用程序,转到某个页面并按几次按钮。

因此,我找到了一种免费托管此应用程序的方法,并提出 OpenShift

在弄清楚它是如何工作之后我设法设置了一个OpenShift git-repository,我能够将我的更改推送到服务器。

然而,在访问我的页面时,我不断获得error 503。最初我认为这是一个节点模块错误,所以我发现npm shrinkwrap解决了npm版本问题。错误仍然存​​在。

当我在本地运行应用程序时,我没有任何错误,并且所有模块都已正确安装。它们也在package.json文件中(我使用npm install --save表示所有模块,因此未执行手动编辑。)

这是使用tail - 命令并将结果扩展到文本文件中的前几行。

 ==> app-root/logs/nodejs.log <==
    at Connection.connect (/var/lib/openshift/550db5624382ecf8f400000f/app>root/runtime/repo/node_modules/mysql/lib/Connection.js:109:18)
    at Object.<anonymous> (/var/lib/openshift/550db5624382ecf8f400000f/approot/runtime/repo/server.js:28:12)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Function.Module.runMain (module.js:497:10)
    at startup (node.js:119:16)
DEBUG: Program node server.js exited with code 8
DEBUG: Starting child process with 'node server.js'

我也发现了这个:

 ==> app-root/logs/nodejs.log <==
Error: connect ECONNREFUSED
    at errnoException (net.js:901:11)
    at Object.afterConnect [as oncomplete] (net.js:892:19)
    --------------------
    at Protocol._enqueue (/var/lib/openshift/550db5624382ecf8f400000f/app-root/runtime/repo/node_modules/mysql/lib/protocol/Protocol.js:135:48)
    at Protocol.handshake (/var/lib/openshift/550db5624382ecf8f400000f/app-root/runtime/repo/node_modules/mysql/lib/protocol/Protocol.js:52:41)
    at Connection.connect (/var/lib/openshift/550db5624382ecf8f400000f/app-root/runtime/repo/node_modules/mysql/lib/Connection.js:109:18)
    at Object.<anonymous> (/var/lib/openshift/550db5624382ecf8f400000f/app-root/runtime/repo/server.js:28:12)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Function.Module.runMain (module.js:497:10)
    at startup (node.js:119:16)
DEBUG: Program node server.js exited with code 8

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

当我第一次推送到OpenShift时,我做了同样的事情。我想我必须审查一些参考文献并进行一些细微的修改。我在OpenShift上的日志表明无法找到这样的文件。如果你回顾整个事情,也可能是你的。

例如,这是我编辑过的“后”版本:

        self.app.set('views', path.join(__dirname, 'views'));

我之前可能就是这样:

        self.app.set('views', '/views');

希望有所帮助。

答案 1 :(得分:0)

嗯......你已经......

Error: connect ECONNREFUSED

...这表明Express无法连接到数据库。也许您已经开始使用dev和prod凭据,并且代码尝试使用本地凭据,本地数据库名称,本地用户名,本地服务器等。

我使用MongoDB(本地没有凭据)并创建了一个/db.js文件来存储所有这些内容。然后我的/server.js选择哪个变量:

if (typeof process.env.OPENSHIFT_NODEJS_IP === "undefined") { mongoose.connect(dbConfig.devurl); } else { mongoose.connect(dbConfig.produrl); }

请注意dbConfig.varname之后的两个不同变量。