Heroku雪松堆栈上的Node.js端口问题

时间:2011-09-21 16:55:33

标签: node.js heroku port express

我在Node.js中运行一个基本的Express应用程序并尝试部署到Heroku。该应用程序在本地工作正常,我相信我的Heroku设置已经很好,直到启动服务器,我得到以下错误:

2011-09-21T16:42:36+00:00 heroku[web.1]: State changed from created to starting
2011-09-21T16:42:39+00:00 app[web.1]: Express server listening on port 3000 in production mode
2011-09-21T16:42:40+00:00 heroku[web.1]: Error R11 (Bad bind) -> Process bound to port 3000, should be 12810 (see environment variable PORT)
2011-09-21T16:42:40+00:00 heroku[web.1]: Stopping process with SIGKILL
2011-09-21T16:42:40+00:00 heroku[web.1]: Process exited

这是我在app.js中的所有内容

app.listen(3000);

我也按照Heroku开始时提到的那样运行它。

$ heroku config:add NODE_ENV=production
Adding config vars:
NODE_ENV => production

我相信我只需要设置生产端口?感谢。

1 个答案:

答案 0 :(得分:74)

您可以显示调用listen的整段代码吗?您应该检查流程环境变量PORT,而不仅仅是将其硬编码为3000.从他们的docs

var port = process.env.PORT || 3000;
app.listen(port, function() {