所有
我对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是否知道此连接已关闭(或者如何通知此情况)?
这在应用程序可能需要重新启动的DEV阶段特别有用。
由于
答案 0 :(得分:2)
这是一个我认为可能有用的想法。 Node.js接收unix信号。因此,例如,Ctrl + C将一个unix信号(SIGINT)发送到您在该终端中运行的Node.js应用程序以终止。
假设您想在关闭node.js应用之前关闭数据库连接。这样您就可以防止数据丢失或损坏。那么,一个好方法就是覆盖终止信号。
要覆盖信号,您只需要这样做:
process.on('SIGINT', function(params) {
//Shut your db instance here.
//close or save other stuff.
});
这样当你执行CTRL + C时,它会优雅地关闭事物而不会有损坏的风险。