Most probably your server socket is bound to the loopback IP address 127.0.0.1 instead of the “all IP addresses” symbolic IP 0.0.0.0 (note this is NOT a netmask). To confirm this, run sudo netstat -ntlp (If you are on linux) or netstat -an -f inet -p tcp | grep LISTEN (OSX) and check which IP your process is bound to (look for the line with “:3000”). If you see “127.0.0.1”, that’s the problem. Fix it by passing “0.0.0.0” to the listen call:
var app = connect().use(connect.static('public')).listen(3000, "0.0.0.0");