如何正常关闭猫鼬的连接池?

时间:2019-02-02 20:12:39

标签: node.js mongodb mongoose node-mongodb-native

如果收到SIGINT / SIGTERM(例如ctrl + c),则必须优雅地停止我的应用并关闭与mongodb服务器的所有连接。

绝大多数文档/教程状态停止的连接(或 连接池),我必须使用mongoose.disconnect()-在池中的连接上调用.close()

但是所有这些文档也都说应该在所有未完成的写操作完成后完成

当我收到信号事件(例如SIGINT,SIGTERM等)时如何知道?猫鼬是否具有正常的关机功能,还是在我致电disconnect()时会丢失数据?

(我使用最新的位。)

1 个答案:

答案 0 :(得分:0)

要接收SIGINT信号并停止连接,可以使用以下代码:

process.on('SIGINT', () => {
    mongoose.disconnect().then(() => {
        process.exit();
    });
});