node.js - 如何在 mongoose 中处理 mongoDB close

标签 node.js mongodb mongoose

全部:

我对 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/

相关文章:

c++ - 动态库在c++名称修改错误中使用静态库

mongodb - node.js: 带有 Mongoose 的 expressjs

node.js - 如何处理 MongoDB 的断开连接错误

对于任何以 .49 或 .99 结尾的数字,JSON 架构给出了 multipleOf 0.01 的验证错误

javascript - 使用 utf-8 字符集为 js 提供服务的 Node.js 公共(public)静态文件夹

node.js - 跨文件拆分时使用 router.use 表示路由器未定义参数

javascript - Mongoose 处理 promise 调用和 Express 中间件中的验证错误

java - 如何查找一个点是否存在于哪个多边形中

node.js - Mongoose $near 查询返回解析错误

javascript - 抽屉导航器 : DrawerItem other than screen