gpt4 book ai didi

node.js - 与 MongoDB 的连接是否在 process.exit() 上自动关闭?

转载 作者:IT老高 更新时间:2023-10-28 13:22:58 25 4
gpt4 key购买 nike

我正在使用 mongodb从 Node.js 应用程序连接到 MongoDB 服务器的驱动程序。

假设我的应用程序崩溃了,或者我调用 process.exit() , 之前没有关闭连接 - 它是否保持打开状态?它会自动关闭吗?如果是这样,谁在乎呢? Node .js? TCP/IP 堆栈? MongoDB? ……?并且:什么时候发生?

如果我点击 <Ctrl>+<C> 会有什么不同吗? ?

最佳答案

答案是。退出(或崩溃)时,数据库连接不会正常关闭。

为此,您应该使用类似于:

// Create a function to terminate your app gracefully:
function gracefulShutdown(){
// First argument is [force], see mongoose doc.
mongoose.connection.close(false, () => {
console.log('MongoDb connection closed.');
});
});
}

// Ask node to run your function before exit:

// This will handle process.exit():
process.on('exit', gracefulShutdown);

// This will handle kill commands, such as CTRL+C:
process.on('SIGINT', gracefulShutdown);
process.on('SIGTERM', gracefulShutdown);
process.on('SIGKILL', gracefulShutdown);

// This will prevent dirty exit on code-fault crashes:
process.on('uncaughtException', gracefulShutdown);

也有一些包可以处理这种行为,但这通常很简单,也很容易实现。

关于node.js - 与 MongoDB 的连接是否在 process.exit() 上自动关闭?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36979146/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com