Can't connect to MongoDB from NodeJS on Ubuntu. Same code on OSX works fine

I have mongodb installed locally on my osx laptop and on a remote ubuntu server. Both have mongodb running and I can verify this using the http diagnostics on port 28017. I'm running the same code on both computers. On osx everything works fine, but on Ubuntu I can't make a connection to the database through NodeJS. I keep getting this error:

Error: failed to connect to [localhost:27017]]
message:  listen EADDRNOTAVAIL
stack:  Error: listen EADDRNOTAVAIL
    at errnoException (net.js:769:11)
    at Server._listen2 (net.js:892:19)
    at listen (net.js:936:10)
    at Server.listen (net.js:993:9)
    at asyncCallback (dns.js:67:16)
    at Object.onanswer [as oncomplete] (dns.js:120:9)

What I don't understand is that I can connect on Ubuntu locally via the mongo commandline interface. I can also connect to the database on Ubuntu via the mongo command on my OSX computer. So nothing seems to be wrong with the installation of MongoDB itself.

Can anyone think of a reason why I can't connect via NodeJS? I have tried using the mongodb and mongoose packages. Both give me the same error.

Here are the 2 ways I tried:

var mongo = require("mongodb");
var host = "localhost";
var port = mongo.Connection.DEFAULT_PORT;
var db = new mongo.Db('node-mongo-examples', new mongo.Server(host, port, {}), {});
db.open(function(err, db){
    if(err){
        log.error('MongoDB connection error:', err);
    }else{
        log.info("OPEN MONGO CONNECTION");
    }
});

And the with mongoose:

var mongoose = require('mongoose');
var db = mongoose.createConnection('localhost', 'node-mongo-examples');

db.on('error', function(err){
  log.error('MongoDB connection error:', err);
});

db.once('open', function () {
  log.debug("OPEN MONGO CONNECTION");
});

In the logs I see nothing special, and nothing happens either

***** SERVER RESTARTED *****

Wed Sep 26 18:00:18 [initandlisten] MongoDB starting : pid=13377 port=27017 dbpath=/var/lib/mongodb 64-bit host=octo-dev
Wed Sep 26 18:00:18 [initandlisten] db version v2.2.0, pdfile version 4.5
Wed Sep 26 18:00:18 [initandlisten] git version: f5e83eae9cfbec7fb7a071321928f00d1b0c5207
Wed Sep 26 18:00:18 [initandlisten] build info: Linux ip-10-2-29-40 2.6.21.7-2.ec2.v1.2.fc8xen #1 SMP Fri Nov 20 17:48:28 EST 2009 x86_64 BOOST_LIB_VERSION=1_49
Wed Sep 26 18:00:18 [initandlisten] options: { config: "/etc/mongodb.conf", dbpath: "/var/lib/mongodb", logappend: "true", logpath: "/var/log/mongodb/mongodb.log" }
Wed Sep 26 18:00:18 [initandlisten] journal dir=/var/lib/mongodb/journal
Wed Sep 26 18:00:18 [initandlisten] recover : no journal files present, no recovery needed
Wed Sep 26 18:00:18 [websvr] admin web console waiting for connections on port 28017
Wed Sep 26 18:00:18 [initandlisten] waiting for connections on port 27017

..... except when I connect through the mongo commandline interface:

Wed Sep 26 18:30:40 [initandlisten] connection accepted from 127.0.0.1:38229 #3 (1 connection now open)

I ran out of things to try. Any suggestions for troubleshooting this?


Some extra info

sudo netstat -tulpn
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:27017           0.0.0.0:*               LISTEN      13377/mongod    
tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      885/mysqld      
tcp        0      0 0.0.0.0:1935            0.0.0.0:*               LISTEN      1102/java       
tcp        0      0 0.0.0.0:9999            0.0.0.0:*               LISTEN      1102/java       
tcp        0      0 192.87.219.76:10000     0.0.0.0:*               LISTEN      31171/webserver 
tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN      1387/java       
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      1076/apache2    
tcp        0      0 0.0.0.0:28017           0.0.0.0:*               LISTEN      13377/mongod    
tcp        0      0 0.0.0.0:48466           0.0.0.0:*               LISTEN      12418/java      
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      3507/sshd       
tcp        0      0 127.0.0.1:9016          0.0.0.0:*               LISTEN      12418/java      
tcp        0      0 0.0.0.0:5080            0.0.0.0:*               LISTEN      1102/java       
tcp        0      0 0.0.0.0:25              0.0.0.0:*               LISTEN      1216/master     
tcp        0      0 0.0.0.0:41018           0.0.0.0:*               LISTEN      12418/java      
tcp        0      0 0.0.0.0:8443            0.0.0.0:*               LISTEN      1102/java       
tcp        0      0 0.0.0.0:9090            0.0.0.0:*               LISTEN      12418/java      
tcp        0      0 0.0.0.0:29090           0.0.0.0:*               LISTEN      12418/java      
tcp        0      0 127.0.0.1:8100          0.0.0.0:*               LISTEN      8535/soffice.bin
tcp        0      0 127.0.0.1:8005          0.0.0.0:*               LISTEN      1387/java       
tcp        0      0 0.0.0.0:389             0.0.0.0:*               LISTEN      887/slapd       
tcp        0      0 0.0.0.0:33736           0.0.0.0:*               LISTEN      1102/java       
tcp6       0      0 :::22                   :::*                    LISTEN      3507/sshd       
tcp6       0      0 :::389                  :::*                    LISTEN      887/slapd       
udp        0      0 192.87.219.76:123       0.0.0.0:*                           721/ntpd        
udp        0      0 127.0.0.1:123           0.0.0.0:*                           721/ntpd        
udp        0      0 0.0.0.0:123             0.0.0.0:*                           721/ntpd        
udp        0      0 0.0.0.0:5353            0.0.0.0:*                           797/avahi-daemon: r
udp        0      0 0.0.0.0:55248           0.0.0.0:*                           797/avahi-daemon: r
udp6       0      0 :::123                  :::*                                721/ntpd        
udp6       0      0 :::35920                :::*                                797/avahi-daemon: r
udp6       0      0 :::5353                 :::*                                797/avahi-daemon: r

I found the problem!! The system had a messed up /etc/hosts file. Something with localhost configuration that was unusual. Correcting this file solved everything :D

Make sure port 27017 is opened to the web server in Ubuntu.

Try firing the mongo command from your terminal.It will show an error if theres some problem with mongodb.