Opened 6 years ago
Last modified 6 years ago
#45518 new defect
Nodejs http server doesn't bind to port
Reported by: | knightcode (Dylan) | Owned by: | ci42 |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 2.3.2 |
Keywords: | yosemite | Cc: | |
Port: | nodejs |
Description
I've got a Node/Express project with the relevant index.js code below. After upgrading to Mac OS Yosemite and properly following the migration instructions, the 'listen' call of the server fires its callback, which is supposedly called in response to the 'listening' event, but a subsequent 'netstat -a' in another terminal does not show a bound socket on the specified port. I also confirmed that attempting to bind to a port below 1024 without privileged access causes an exception. Above 1024 gets a silent error.... or a false positive really.
var express = require('express'); var http = require('http'); var app = express(); app.set('port', (process.env.PORT || 5000)); // ... set a bunch of other stuff var server = http.createServer(app); server.listen(app.get('port'), function () { console.log("Node app is running at localhost:%d %d %s", app.get('port'), server.address().port, app.settings.env); });
Change History (4)
comment:1 Changed 6 years ago by ryandesign (Ryan Schmidt)
Owner: | changed from macports-tickets@… to ciserlohn@… |
---|
comment:2 Changed 6 years ago by knightcode (Dylan)
I was running express 4.0.0 installed via npm. I updated to 4.9.8, but still having the same issue. And I'm on node 0.10.32 as well.
I'm going through the migration steps again now that I have XCode 6.1 instead of 6.0.1. And I'm completely wiping /opt/local. Will report back.
comment:4 Changed 6 years ago by knightcode (Dylan)
created another app with just the above code. No luck.
Your example works fine for me on Yosemite with node v0.10.32 and express@4.9.8.