【问题标题】:NodeJS Deployment confusion between localhost and other domain?localhost和其他域之间的NodeJS部署混淆?
【发布时间】:2015-04-24 14:19:02
【问题描述】:

我有一个简单的程序,可以在 localhost 中正常运行。

var express = require('express');
var app = express();

app.get('/', function (req, res) {
  res.send('Hello World!');
});

var port = process.env.PORT || 8080;
var host = "127.0.0.1";

var server = app.listen(port, host, function(){
    console.log("Server running in : ",host ," with port no : ",port);
});

尝试使用 codeship 将其部署到 heroku。除了最后一行部署测试命令,即node index.js,一切都在构建完美,这反过来又引用了 127.0.0.1 并停止部署。我可以知道我是否需要在此处更改 hostport 地址

【问题讨论】:

    标签: node.js heroku port host codeship


    【解决方案1】:

    只是不提供主机:

    var server = app.listen(port, function() {
      console.log('Server listening on', port);
    });
    

    (这意味着“在此端口上接受 任何 主机上的连接”,而您正在尝试的则意味着“在此端口上接受 127.0.0.1 上的连接”)

    【讨论】:

      【解决方案2】:

      在作为 Heroku Toolbelt 一部分的工头的帮助下,尝试在 localhost 上运行您的应用程序。例如:

      foreman start web
      

      您应该会看到您的应用在http://localhost:5000 或您在package.json 文件中指定的端口上运行。

      建议此链接以进行进一步查询: prerequisites 在 Heroku 上部署节点应用?

      【讨论】:

        【解决方案3】:

        我能够按照这些步骤成功托管它

        1. 按照@hunterloftis 的建议,我删除了主机名。

        2. 更重要的是Procfile不见了,所以添加并部署成功

        【讨论】:

        • 你不需要 Procfile(除非你想要一个)。 Heroku 将默认运行 npm start
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-09-22
        • 2015-06-01
        • 2020-01-08
        • 2012-10-21
        • 2011-09-22
        • 2013-01-03
        • 2012-06-23
        相关资源
        最近更新 更多