Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Node.js服务器崩溃处理_Javascript_Node.js_Node.js Domains - Fatal编程技术网

Javascript Node.js服务器崩溃处理

Javascript Node.js服务器崩溃处理,javascript,node.js,node.js-domains,Javascript,Node.js,Node.js Domains,当我的node.js服务器崩溃或停止时,是否有任何方法可以执行一些数据库更新操作。像在JAVA中尝试{}catch(){}finally(){}。我在这里有点新手 节点在关闭之前是否会发出任何事件。如果是这样,我可以在那里写我的函数 我有一个场景,如果我手动停止服务器,我需要更新数据库中的一些字段。 未经处理的碰撞也是如此 我在这里介绍Node.js中的域。但是我不知道如何使用域监控整个服务器。当您使用node JS时,使用try/catch是一种不好的做法,因为异步调用的数量很大。这里的最佳实

当我的node.js服务器崩溃或停止时,是否有任何方法可以执行一些数据库更新操作。像
在JAVA中尝试{}catch(){}finally(){}
。我在这里有点新手

节点在关闭之前是否会发出任何事件。如果是这样,我可以在那里写我的函数

我有一个场景,如果我手动停止服务器,我需要更新数据库中的一些字段。 未经处理的碰撞也是如此


我在这里介绍Node.js中的域。但是我不知道如何使用域监控整个服务器。

当您使用node JS时,使用try/catch是一种不好的做法,因为异步调用的数量很大。这里的最佳实践是使用“承诺”查看下一个链接,在那里您可以找到一个很好的解释:

当节点进程即将退出时,会发出一个事件:

process.on('exit', function(code) {
    console.log('About to exit with code:', code);
});

但是,您不能在此查询数据库,因为此处理程序只能执行同步操作。一些可能的替代方案:

  • 使用,这样当你的应用程序崩溃时,你就不需要做“数据库更新的事情”
  • 使用一个工具,比如自动重新启动进程,然后在进程启动时进行数据库修复

JavaScript有
try
/
catch
,但在任何语言中都不应该使用它来处理崩溃。检查这个问题:另外,如果内核由于某种原因(比如内存不足)终止了进程,您可能会想做一些事情。在这种情况下,您必须从外部监控您的流程。嗨,埃米特,谢谢!!!但这个出口并没有被触发。当我停止服务器时,你能给我一个样本吗。我也在使用express.js和child进程。