Get Even More Visitors To Your Blog, Upgrade To A Business Listing >>

Can I have node.js listen on a non-standard port when hosted on Heroku?

Can I have node.js listen on a non-standard port when hosted on Heroku?

Problem

I'm building a node.js app and am experimenting with hosting it on Heroku. It seems that to make my app available to the world, I need to listen like this:

app.listen(process.env.PORT || 3000);

I'd like to have my app listen on Port 8080. Is this possible in Heroku? Can I change the value of process.env.port? It seems to be some kind of reverse proxy that I might not have control over.

Problem courtesy of: iZ.

Solution

No. Heroku tells your Application which port your application is required to listen on. The required interface between Heroku and your application is the PORT environment variable: your application must look for and use it. Your application is not able to listen on any other port except the port that Heroku tells your application it must listen on. Heroku tries to open a TCP connection to your application on that port and, if sixty seconds elapse since Heroku started your application and your application isn't listening on that port, Heroku figures your application is broken and shuts it down.

Solution courtesy of: yfeldblum

Discussion

View additional discussion.



This post first appeared on Node.js Recipes, please read the originial post: here

Share the post

Can I have node.js listen on a non-standard port when hosted on Heroku?

×

Subscribe to Node.js Recipes

Get updates delivered right to your inbox!

Thank you for your subscription

×