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