如何在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事物而不会造成损害。