Node.js服务器崩溃处理

时间:2014-10-12 18:11:03

标签: javascript node.js node.js-domains

当我的node.js服务器崩溃或停止时,有什么方法可以做一些数据库更新的事情。就像JAVA中的try{}catch(){}finally(){}一样。我在这里有点新手。

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

我有方案,如果我手动停止服务器,我需要更新数据库中的一些字段。 同样适用于未处理的崩溃。

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

2 个答案:

答案 0 :(得分:1)

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

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

http://nodejs.org/api/process.html#process_event_exit

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

  • 使用database transactions所以你永远不需要做数据库更新事情"当您的应用崩溃时
  • 使用像Upstart这样的工具自动重启您的流程,然后在您的流程启动时执行数据库修复工作

答案 1 :(得分:0)

当你使用节点JS时,由于大量的异步调用,使用try / catch是不好的做法。这里使用"承诺"的最佳做法查看下一个链接,您可以在那里找到一个很好的解释:https://www.promisejs.org/

相关问题