如何在mongoose中处理mongoDBclosures
所有:
我对mongoose来说很新,现在,我打开MongoDB,如下所示:
db.js
var DB_URL = "mongodb://localhost/test/"; var mongoose = require("mongoose"); mongoose.connect(DB_URL); var db = mongoose.connection; db.on('error', console.error.bind(console, 'connection error:')); db.once('open', function (callback) { console.log("OPEN DB..."); }); module.exports = mongoose;
我想知道:如果我简单地用CTRL + C来终止使用那个mongoose连接的应用程序,我有什么要做的吗? 请问MongoDB知道这个连接已经closures了(或者我怎么能通知这个)?
这是在应用程序可能需要重启很多的DEV阶段特别有用。
谢谢
那么这里是一个我认为可能有用的想法。 Node.js接收unix信号。 因此,例如Ctrl + C发送一个unix信号(SIGINT)到您在该terminal中运行的Node.js应用程序来终止。
假设你想closures你的数据库连接,然后closuresnode.js应用程序。 这样可以防止丢失或损坏数据。 那么,一个好办法是重写终止信号。
要覆盖信号,所有你需要做的是这样的:
process.on('SIGINT', function(params) { //Shut your db instance here. //close or save other stuff. });
这样,当你做CTRL + C时,它会优雅地closures事物而不会造成损害。
- 如何把variables放入我的查询? (mongoose)
- mongoose – 无论如何,以防止中间件保存挂钩在特定条件下执行(例如被保存为子文档)?
- 如何使用NodeJS在MongoDB中以毫秒为单位插入时间戳
- 用jasmine-node在nodejs中testingasynchronousmongodb调用
- 使用多个数据库的node-mongodb-native 2.X驱动程序
- MongoDB对每个用户的db.collection.distinct()的效率与保存为数据库条目和检索结果
- 在dropDatabase之后不执行唯一的字段约束
- findOneAndUpdatemongoose需要太长的'唯一'20kasynchronous更新
- 使用Express和Mongodb维护上传的图片 – 最佳实践?