所以,我成功地将一个node.js应用程序提交给OpenShift - 没有收到任何错误 - 但它不起作用(尝试通过我的浏览器访问它时出现错误503,从本地计算机运行测试时出现连接超时) 。提交时的输出表明节点和mysql成功启动,并且构建成功。
我通过ssh访问了服务器,并检查了节点日志。它说EADDRINUSE发生了:Error occurred during initialization of VM
java/lang/NoClassDefFoundError: java/lang/Object
。
在我的配置中,我使用:
Error: listen EADDRINUSE :::8080
我还在"server":{
"host":"OPENSHIFT_NODEJS_IP",
"port":"OPENSHIFT_NODEJS_PORT"
}
的shell中检查了可用的environement变量,两者都在那里,8080是正确的端口。
在shell中运行export
时,它只显示正在运行的程序ps
和ps
。 bash
应该意味着该端口已被其他程序使用,但我看不到任何正在运行的内容......我无法运行EADDRINUSE
(权限被拒绝)。
我尝试了停止/启动/重启的各种组合,但我总是得到同样的错误。
此时我很失落。任何指针都将不胜感激!
答案 0 :(得分:0)
我发现了问题。在本地,我曾经使用app.listen(port);
启动服务器,这足以运行它并在localhost
上访问它。但这对OpenShift不起作用。还需要指定主机:app.listen(port, host);
。