6

我试图将 Node.js 应用程序部署到 openshift,如此处的链接

我理解这段代码

var http = require('http');

var server = http.createServer(function(req, res) {
    res.writeHead(200);
    res.end('Hello Http');
});
server.listen(3000);

并且在本地运行它没有问题

$ node server.js // saved as server.js

但是,当我在 openshift 中提交此应用程序时,这是如何工作的?这是非常简单的代码。我有一些下载的代码是聊天应用程序,客户端服务器需要配置为侦听某个端口(我在本地主机中使用端口号 3000)。

它在 localhost 中的端口号 3000 上工作,但我怎样才能让它在 Openshift 中工作?

4

2 回答 2

9

你需要监听端口process.env.OPENSHIFT_NODEJS_PORT。所以这样的事情应该有效:

server.listen(process.env.OPENSHIFT_NODEJS_PORT || 3000);

例如,请参见此处:错误:在 Openshift 应用程序上侦听 EACCES

于 2013-10-08T18:36:21.477 回答
2

嘿,socket.io 的问题是你在本地安装了 npm 包,但没有在 openshift 中(依赖项不会被推送)。为此,您可以通过 ssh 登录(在 openshift 控制面板的右侧菜单中查找“想要登录您的应用程序?”,按照说明并使用提供的 ssh 连接)然后使用终端 o Putty 登录,然后转到:

cd app-root/repo 

或者

cd $OPENSHIFT_REPO_DIR

接着

npm install socket.io

我已经用它来安装猫鼬和其他依赖项而没有麻烦。你也可以使用

node server.js

从命令行运行站点;)

于 2013-10-21T18:31:31.340 回答