Sails - 捕获使服务器崩溃的全局适配器错误

时间:2013-12-19 21:07:25

标签: node.js express sails.js

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

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

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

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

1 个答案:

答案 0 :(得分:3)

来自帆文档:http://sailsjs.org/#!documentation/config.500

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

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

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

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

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

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