问题描述
我正在Node.js中运行一个基本的Express应用程序,并尝试部署到Heroku。该应用程序在本地工作正常,我相信我的设置与Heroku已经很好,直到启动服务器,我得到以下错误:
I'm running a basic Express app in Node.js and trying to deploy to Heroku. The app works fine locally and I believe my setup with Heroku has gone well up until starting the server where i get the following error:
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
this is currently all i have in my app.js
app.listen(3000);
我也按照Heroku开始提到的那样运行。
I did also run this as mentioned on Heroku's getting started.
$ heroku config:add NODE_ENV=production
Adding config vars:
NODE_ENV => production
我相信我只需要设置端口进行生产?谢谢。
I believe I just need to set up the port for production? Thanks.
推荐答案
您可以显示整个代码段,您调用 listen
?您应该检查过程环境变量PORT,而不仅仅是将其硬编码为3000.从他们的:
Can you show the entire section of code where you call listen
? You should be checking for the process environment variable PORT, not just hardcoding it to 3000. From their docs:
var port = process.env.PORT || 3000;
app.listen(port, function() {
这篇关于Heroku雪松堆栈上的Node.js端口问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!