【问题标题】:How to properly set the node app port number in Heroku如何在 Heroku 中正确设置节点应用程序端口号
【发布时间】:2020-04-08 14:54:40
【问题描述】:

我知道 Heroku 会自动为您的实例分配一个端口号,并且在您定义一个特定的端口号(如“3000”)时不起作用。但是当我尝试更改我的端口号以使用环境变量(如 Heroku 的文档和一些堆栈溢出答案中建议的)时,我总是得到

错误 R10(启动超时)-> Web 进程在启动后 60 秒内未能绑定到 $PORT

该应用程序在本地运行完美,我想知道如何最好地更改我的代码以确保它在 Heroku 上运行:

var express     = require('express'),
    app         = express(),
    server      = require('http').createServer(app),
    io          = require('socket.io').listen(server),
    port        = 3000,

    // hash object to save clients data,
    // { socketid: { clientid, nickname }, socketid: { ... } }
    chatClients = new Object();

server.listen(port);

以下是我尝试过的一些链接等:

https://devcenter.heroku.com/articles/preparing-a-codebase-for-heroku-deployment(点数 4)

Heroku + node.js error (Web process failed to bind to $PORT within 60 seconds of launch)

https://help.heroku.com/P1AVPANS/why-is-my-node-js-app-crashing-with-an-r10-error

【问题讨论】:

    标签: node.js heroku


    【解决方案1】:

    只需从环境变量中访问 PORT,如下所示:

    var express     = require('express'),
        app         = express(),
        server      = require('http').createServer(app),
        io          = require('socket.io').listen(server),
        port        = process.env.PORT || 3000,
    
        // hash object to save clients data,
        // { socketid: { clientid, nickname }, socketid: { ... } }
        chatClients = new Object();
    
    server.listen(port);
    

    【讨论】:

    • 我已经尝试过了,它返回了同样的错误。让我知道是否有助于查看整个脚本。
    猜你喜欢
    • 2023-04-04
    • 2016-10-14
    • 2021-04-04
    • 1970-01-01
    • 2018-03-03
    • 2022-01-16
    • 2017-06-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多