关于node.js:Sails – 捕获使服务器崩溃的全局适配器错误

Sails - catch global adapter errors that crash the server

我正在尝试找到处理连接错误的最佳位置,或任何其他导致服务器崩溃的全局错误。

什么是捕获适配器/全局错误的正确位置,而不是让它们崩溃服务器?

具体来说,我想以优雅的方式处理这些类型的错误:

1
2
3
4
Error spawning mySQL connection:
error: Hook failed to load: orm (Error: connect ECONNREFUSED)
error: Error encountered while loading Sails core!
error: Error: connect ECONNREFUSED


来自sails docs:http://sailsjs.org/#!dococumentation/config.500

这就是错误处理风帆从配置中暴露出来的

如果您的错误通过了,您可以挂钩,否则您可以挂钩节点的进程

1
2
3
4
5
process.on('uncaughtException', function (err) {
  if (err.toString() === 'Error spawning mySQL connection') {
    //rende some error page
  }
})

如果抛出的异常是异步的,那么捕获它的唯一方法就是进程

但请注意,这些类型的错误几乎总是无法恢复,因此崩溃(和重新启动)是最好的方法

加载的大多数模块使用局部变量并仅通过module.exports公开其内部的子集,卸载模块并重新启动其本地代码,但是您需要卸载所有相关模块以及所有依赖模块的模块。 这就是为什么正常的方法是让它崩溃