Node.js Error closing MongoDB sockets

I am currently creating a login system for my NodeJS application. However, I get a weird error from MongoDB whenever I try to get a collection.

Error message

[MongoError: server localhost:27017 sockets closed]
name: 'MongoError',
message: 'server localhost:27017 sockets closed'

Here is my code to connect to my db

    var username = req.body.user.username;
    var password = req.body.user.password;

    MongoClient.connect("mongodb://localhost:27017/myDb", function(err, db){
        assert.equal(null, err);

        var collection = db.collection("accounts");
        collection.findOne({"username": username}, function(err, item){
            console.log(item);
            console.log(err);
        });

        db.close();
    });

Can anyone see where Ive gone wrong? Thanks in advanced :)

+4
source share
1 answer

You close the database before the search request is completed (this is an asynchronous method). Delete it db.close()or move it to a callback findOne.

var username = req.body.user.username;
var password = req.body.user.password;

MongoClient.connect("mongodb://localhost:27017/myDb", function(err, db){
    assert.equal(null, err);

    var collection = db.collection("accounts");
    collection.findOne({"username": username}, function(err, item){
        console.log(item);
        console.log(err);
        db.close();
    });


});

, , / DB , : db close

+7

All Articles