全部:
我对 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 会知道此连接已关闭(或者我如何通知这一点)?
这在开发阶段特别有用,因为应用程序可能需要经常重新启动。
谢谢
最佳答案
我认为这是一个可能有帮助的想法。 Node.js 接收 Unix 信号。例如,Ctrl+C 向您在该终端中运行的 Node.js 应用程序发送一个 unix 信号 (SIGINT) 以终止。
假设您想在关闭 Node.js 应用程序之前关闭数据库连接。这样您就可以防止数据丢失或损坏。那么,一个好的方法是覆盖终止信号。
要覆盖信号,您所要做的就是:
process.on('SIGINT', function(params) {
//Shut your db instance here.
//close or save other stuff.
});
这样,当您执行 CTRL+C 时,它会正常关闭,而不会造成损坏。
关于node.js - 如何在 mongoose 中处理 mongoDB close,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34319661/