mongojs实现新的bie
嗨,我是新来的MongoDB和NodeJs。 我正在使用“mongojs”模块来简单地从mongodb读取数据。 代码如下:
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();
当我在terminal上运行它们时,我得到这个错误:
{ name: 'MongoError', message: 'server localhost:27017 sockets closed' }
看起来像db.close()在获取数据之前正在执行。 我们如何处理这类问题。
上面的代码是asynchronous的。 而db.candidate.findOne()的操作正在执行中。 该节点不等待进程完成,并开始执行另一行。 所以简单地说,db.close()在callback中可以解决这个错误。
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(); });
我也是节点的新手。 所以是的,@布莱克可能是正确的,他说什么,我们可能永远不想closures数据库连接。
- 如何将logging插入到具有$ oidlogging的节点中
- 为什么要通过一个Mongoose对象显示元数据?
- NodeJS,Mongoose – 插入数据时的重复条目
- Mongoose,在mongoose.model('core_user')。schema。new mongoose.schema(…)后强制更改模式。
- 在MongoDB文档中使用MomentJS作为默认date
- nodejs + mongoose – 如何在nodejs中使用forEach
- mongodb中的findAndModify错误 – nodejs – 错误代码17287
- 使用Mongoose更新MongoDB文档而不删除文档中已有的信息
- MongoDB重复键错误