应用程序在heroku上崩溃,但是当我在端口收听时在本地工作

时间:2018-01-06 23:44:13

标签: node.js heroku

这是我的节点应用index.js

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

const port=8000;

app.listen(port,()=>{
    console.log('live on port '+port);
});

app.get('/',function(req,res){
    res.send('this is the main homepage GET response');
});

当我使用

在本地运行时
node index.js

它按预期工作;我收到一条控制台消息:

live on port 8000

然后当我在浏览器中打开http://localhost:8000时,我看到了

this is the main homepage GET response

但是当我部署到Heroku时,我只是得到了#34;应用程序错误"。如果我注释掉app.listen()并重新部署,也会发生同样的情况。

崩溃的Heroku日志显示:

2018-01-06T23:41:12.121338+00:00 heroku[web.1]: State changed from crashed to starting
2018-01-06T23:41:14.907585+00:00 heroku[web.1]: Starting process with command `node index.js`
2018-01-06T23:41:18.142788+00:00 heroku[web.1]: Process exited with status 0
2018-01-06T23:41:18.159613+00:00 heroku[web.1]: State changed from starting to crashed

不是很有用;如何获得有关此崩溃的更精确的调试信息?

1 个答案:

答案 0 :(得分:0)

基于this answer,我将环境变量用于app.listen()中指定的端口,并且它起作用了:

const port=process.env.PORT;
app.listen(port,()=>{
    console.log('live on port '+port);
});