Node.js + Express仅适用于测试服务器上的端口3000

时间:2013-10-10 11:11:39

标签: node.js azure express

在本地测试它工作。在不同的港口(3001,8080)

但是在测试服务器(Azure)上

我在同一台机器上运行2个Node App实例

$ node api1/index.js (on port 3000)
$ node api2/index.js (on port 3001)

$ node api1/index.js (on port 3001)
$ node api2/index.js (on port 3000)

但它只适用于端口3000。

如何在Express中设置不同的端口?

现在,我在index.js上更改了app.listen(3001)并且它无效。

1 个答案:

答案 0 :(得分:5)

云平台通常会设置一个环境变量,其中包含他们希望您粘贴应用的端口。我对Azure没有任何经验...请在此处查看答案:How to run a node.js server on Azure?

具体做法是:

var port = process.env.port

根据我的经验,大多数云提供商都不允许您在其他端口上玩游戏。您也可以始终指定localhost端口,但这样做:

var port = process.env.port || 3001 //(or whatever)

app.listen(port);

这样,如果process.env.port未定义(它将在您的开发环境中),则回退到3001。

有意义吗?