hba*_*hba 16 javascript mongoose mongodb node.js
Node,Mongoose和Mongodb的新手 - 尚未阅读源代码......
我有一个Node应用程序,它打开一个文件,将行解析为记录并将记录保存到mongodb.记录是Mongoose模型对象,为了将它们保存到mongodb,我所做的就是调用save它们的方法.
所以现在我都担心猫鼬正在管理的联系db = mongoose.connect(url).我需要手动关闭它吗?如果是这样,我什么时候应该关闭它(因为一切都发生异步,很难说什么时候关闭连接)?
似乎mongoose不仅保持连接打开,而且还使我的脚本不会终止.在我打电话save给所有物体后,我可以安全地关闭猫鼬连接吗?否则,鉴于保存的异步性质,很难确切地知道何时关闭连接.
Joh*_*yHK 16
您需要调用mongoose.disconnect()以关闭连接,但您还需要等到所有save调用完成其异步工作(即称为回调)之后再执行此操作.
因此,要么保持一个简单的计数,仍然有多少仍然是未完成的跟踪或使用流程控制框架喜欢async做一些更优雅的事情.
End*_*imo 11
当发生Node POSIX信号时,您应该关闭mongoose连接.在终端上按下Ctrl-C或服务器关闭时触发SIGINT进程.
另一种可能的情况是在完成数据流时关闭连接.无论如何,建议在启动时连接并在关机时断开连接.
这是用于断开SIGINT信号的代码.
// If the Node process ends, close the Mongoose connection
process.on('SIGINT', function() {
mongoose.connection.close(function () {
console.log('Mongoose disconnected on app termination');
process.exit(0);
});
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
18740 次 |
| 最近记录: |