I create and launch an app like this:
express -s -t ejs npm install express npm install ejs node app.js
and it works (on port 3000). But when I go and change the port to 80, then running node app.js
outputs this:
node.js:198 throw e; // process.nextTick error, or 'error' event on first tick ^ TypeError: Cannot call method 'getsockname' of null at HTTPServer.address (net.js:746:23) at Object.<anonymous> (/var/www/thorous/app.js:35:67) at Module._compile (module.js:432:26) at Object..js (module.js:450:10) at Module.load (module.js:351:31) at Function._load (module.js:310:12) at Array.<anonymous> (module.js:470:10) at EventEmitter._tickCallback (node.js:190:26)
This works too on my laptop, but not on my Amazon EC2 instance, where port 80 is open. Can figure out what's wrong. Any tips?
const server = http. createServer((req,res)=>{ // Handle request and response }); Specify Port Number and hostname and set the server to listen to it. server.
javascript - Node. js/Express. js App Only Works on Port 3000 - Stack Overflow. Stack Overflow for Teams – Start collaborating and sharing organizational knowledge.
If you really want to do this you can forward traffic on port 80 to 3000.
sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 3000
Are you starting your app as root? Because lower port numbers require root privileges. Maybe a sudo node app.js works?
BUT, you should NOT run any node.js app on port 80 with root privileges!!! NEVER!
My suggestions is to run nginx in front as a reverse proxy to your node.js app running on port e.g. 3000
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With