有很多问题要问:我们如何退出以及它在节点js中的确切作用:使用process.exit()
命令。但是何时以及为什么需要退出?
我目前的理解是node/nodemon app.js
启动了我们网站运行的服务器的流程。所以我们何时以及为什么
是否需要在生产中关闭它?
在看到如何关闭这篇SO文章(接受的答案,评论部分)上的MongdoDB连接后,我遇到了这个问题: Mongoose Close Connection
答案 0 :(得分:3)
process.exit()
有点需要。
如果您在Heroku等服务上托管您的应用程序,那么该应用程序将每天至少重启一次。这称为cycling。当Heroku dyno循环时,它会将SIGTERM发送到应用程序,例如,可以通过以下方式处理:
process.on('SIGTERM', gracefulShutdown);
function gracefulShutdown() {
mongoose.connection.close(() => {
console.log('Shutting down');
process.exit(0);
});
}
当应用程序被sigtermed时,我们希望在继续关闭之前优雅地关闭数据库连接。我们通过监听SIGTERM事件来停止默认行为,但我们仍然必须做SIGTERM应该做的事情,这就是停止进程。 Heroku将在之后重新启动应用程序。