在本地测试它工作。在不同的港口(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)并且它无效。
答案 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。
有意义吗?