1

以下代码有效(用户对象被写入控制台),但该进程不会退出。我相信其中一项承诺一定不能解决?

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
});

这段代码有什么问题?

4

1 回答 1

0

MongoDB 创建一个持久连接,您应该在应用程序的整个生命周期中使用它。

完成后 - 关闭它。那就是——打电话db.close()

如果您想编写更健全的代码,请使用Promise.using和 adisposer来制作connectAsync为您进行资源管理的更健全的代码。

于 2014-06-21T08:41:38.590 回答