MongoError: failed to connect to server [localhost:27017] on first connect (ECONNREFUSED)

Salvatore picture Salvatore · Aug 24, 2017 · Viewed 7.1k times · Source

I just added MongoDB to the dependencies of my Node.js project created with the npm init command. My index.js code is:

var MongoClient = require('mongodb').MongoClient
, assert = require('assert');

// Connection URL
var url = 'mongodb://localhost:27017/mydatabase';

// Use connect method to connect to the server
MongoClient.connect(url, function(err, db) {
assert.equal(null, err);
console.log("Connected successfully to server");

db.close();
});

But when I execute the code it throws the following error:

AssertionError: null == { MongoError: failed to connect to server [localhost:27017] on first connect [MongoError: connect ECONNREFUSED 127.0.0.1:27017]

I really don't know how to fix it. I followed some guides that reported the same error but I couldn't fix it.

Should I poen a port on my modem? Should I replace "localhost" with my IP? Should I do anything else?

Please help me!

UPDATE:

I installed a MongoDB server on my Android device and replacing the url variable with mongodb://ANDROID-DEVICE-LOCAL-IP:27017/mydatabase it now works.

How can I accomplish it placing the database on my computer? Is the firewall blocking incoming connections? Is this why it works on Android but not on Windows?

Answer

Salvatore picture Salvatore · Aug 25, 2017

I fixed the issue!

I ran mongod -dbpath "MY-PATH" in the cmd and now it works.

The error occurred because nothing was listening on 27017 port. Now the mongod program is listening for connections on that port and so the connection from my project is no more refused.