Node.js + Express只能在testing服务器上的端口3000上运行

在本地testing它的工作。 在不同的端口(3001,8080)

但是在testing服务器(Azure)

我在同一台机器上运行2个节点应用程序的实例

$ 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 App?

现在,我已经改变了在index.js app.listen(3001),它不起作用。

提前致谢。

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

特别:

 var port = process.env.port 

根据我的经验,大多数云提供商不允许您在其他端口上播放。 你总是可以指定一个localhost端口,虽然这样做:

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

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

合理?