node.js - mongojs implementation new bie -


hi new mongodb , nodejs. using "mongojs" module simple read data mongodb. code goes follows:

var dbname = 'xxxx'; var databaseurl = 'mongodb://localhost:27017/'+dbname; var collections = ['candidate','cities','states','countries']; var mongojs = require('mongojs'); var db = mongojs(databaseurl, collections);  db.candidate.findone({fname:'xxx'},function(err,doc){     if(err){         console.log(err);     }     else{         console.log(doc);     } }); db.close(); 

when run them in terminal error:

{ name: 'mongoerror',   message: 'server localhost:27017 sockets closed' } 

seems db.close() getting executed before data fetched. how handle such kind of issues.

the above code asynchronous. while operation db.candidate.findone() being carried out. node not wait process complete , starts executing line. putting, db.close() in callback can solve error.

var dbname = 'xxxx'; var databaseurl = 'mongodb://localhost:27017/'+dbname; var collections = ['candidate','cities','states','countries']; var mongojs = require('mongojs'); var db = mongojs(databaseurl, collections);  db.candidate.findone({fname:'xxx'},function(err,doc){     if(err){         console.log(err);     }     else{         console.log(doc);     }     db.close(); }); 

i novice in node. yes, @blake correct said, may never want close db connection.


Comments