我有一个一次性节点脚本,它对 MongoLab 上的 MongoDB 数据库进行了一些更改。然而,一旦它完成,它永远不会退出事件循环(我总是必须 ctrl+C 它),无论我做了多少db.close()
和db.logout()
调用。
奇怪的是,如果我启动一个本地运行实例mongod
并连接到它,脚本完成得很好,但远程连接永远不会结束。
这是我的脚本的简短版本,仍然存在问题(在命令行上将 URL 带到服务器)。这是怎么回事?
var mongodb = require("mongodb");
function onSuccess(cb){
return function(err) {
if (err) {
console.error(err)
} else {
cb.apply(this,Array.prototype.slice.call(arguments,1))
}
}
}
console.log("Connecting to "+process.argv[2]+' ...');
mongodb.MongoClient.connect(process.argv[2],onSuccess(function(db){
console.log("Connected.");
db.logout(onSuccess(function(logoutResult){
db.close(onSuccess(function(closeResult){
console.log("All finished. Can has prompt return nao?")
}));
}));
}));