Heroku Deployment Pitfall: Bind to $PORT

02/19/20191 Min Read — In DevTools, Node.js

During development, you set a port that Node listens to.

app.listen(5000)

That doesn't work with Heroku because Heroku binds your port and you cannot set it yourself.
You'll get an error: Web process failed to bind to $PORT within 60 seconds of launch.

Fix this with environment variable process.env.PORT:

const PORT = process.env.PORT || 5000
app.listen(PORT)

Further Reading