【问题标题】:Node.js + Express only work on port 3000 on test serverNode.js + Express 仅适用于测试服务器上的 3000 端口
【发布时间】:2013-10-18 02:54:03
【问题描述】:

在本地测试中它可以工作。在不同的端口(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) 进行了更改,但它不起作用。

【问题讨论】:

    标签: node.js azure express


    【解决方案1】:

    通常,云平台会设置一个环境变量,其中包含他们希望您将应用粘贴到的端口。我对 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。

    有意义吗?

    【讨论】:

    • 弗拉克。很高兴我现在知道了!
    猜你喜欢
    • 2018-01-13
    • 2016-01-17
    • 2020-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多