以下代码有效(用户对象被写入控制台),但进程不会退出。我相信其中一项承诺一定不能解决?
var Promise = require("bluebird");
var mongodb = require('mongodb');
Promise.promisifyAll(mongodb);
mongodb.MongoClient.connectAsync("mongodb://localhost/test")
.then(function(db){
var users = db.collection('users');
return users.findOneAsync({userName: "someuser"});
})
.then(function (result) {
console.log(result);
})
.catch(function(e){
//handle error
});
此代码有什么问题?
答案 0 :(得分:0)
MongoDB创建了一个持久连接,您应该在应用程序的整个生命周期中使用该连接。
当你完成它 - 关闭它。那就是 - 致电db.close()
如果您想编写更合理的代码,请使用Promise.using
和disposer
来制作更适合您的资源管理connectAsync
。