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

Kia*_*rom 1 azure node.js express

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

但在测试服务器(Azure)上

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

$ node api1/index.js (on port 3000)
$ node api2/index.js (on port 3001)
Run Code Online (Sandbox Code Playgroud)

$ node api1/index.js (on port 3001)
$ node api2/index.js (on port 3000)
Run Code Online (Sandbox Code Playgroud)

但它只适用于端口3000.

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

现在,我已经在index.js的app.listen(3001)上进行了更改,但它无效.

Zek*_*erg 5

通常,云平台会设置一个环境变量,其中包含他们希望您粘贴应用程序的端口.我对Azure没有任何经验...请在此处查看答案:如何在Azure上运行node.js服务器?

特别:

var port = process.env.port
Run Code Online (Sandbox Code Playgroud)

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

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

app.listen(port);
Run Code Online (Sandbox Code Playgroud)

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

合理?