tuddy
tuddy

Reputation: 1834

Node.js port issue on Heroku cedar stack

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

this is currently all i have in my app.js

app.listen(3000);

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.

Upvotes: 18

Views: 14001

Answers (1)

Femi
Femi

Reputation: 64690

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() {

Upvotes: 74

Related Questions