【发布时间】:2016-03-09 23:05:03
【问题描述】:
我有一个 node.js 脚本,我想定期运行它使用 mongoose 写入 mongodb。它连接到 mongodb,写入和断开连接。问题是脚本有时似乎挂起。我必须手动终止脚本(ctrl+C)。
mongoose.connect(MONGODB_URL);
var db = mongoose.connection;
db.on('error', function(err) {
console.log(err);
});
db.on('open', function() {
console.log('opened');
});
db.on('close', function() {
console.log('closed');
});
Model.update(....., function(err) {
if (err) throw err;
mongoose.disconnect();
});
一切似乎都很好。该脚本打印opened 和closed 并正确更新数据库,但之后不会终止。在完成对数据库的所有更新后,我还在标注内部断开连接,因此不应该有任何挂起的查询会阻止脚本终止。
这里提出了类似的问题:Properly close mongoose's connection once you're done 但似乎没有任何真正的解决方案。
编辑:
我可以通过在末尾添加process.exit() 来终止它,但事实并非如此。
【问题讨论】:
-
当我尝试它时退出正常,所以问题可能在您的代码中的其他地方。