我正在尝试找到处理连接错误或导致服务器崩溃的任何其他全局错误的最佳位置。
捕获适配器/全局错误并且不让它们导致服务器崩溃的正确位置是什么?
具体来说,我想以优雅的方式处理这些类型的错误:
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 文档:http://sailsjs.org/#!documentation/config.500
这就是 sails 从配置中暴露的错误处理
如果你的错误通过了,你可以 Hook 那里,否则你可以 Hook Node 的进程
process.on('uncaughtException', function (err) {
if (err.toString() === 'Error spawning mySQL connection') {
//rende some error page
}
})
如果抛出的异常是异步的,那么捕获它的唯一方法是通过进程
但是请注意,这些类型的错误几乎总是不可恢复的,因此崩溃(并重新启动)是最好的方法
大多数加载的模块都使用局部变量,并且仅通过 module.exports
公开其内部结构的子集,可以卸载模块并重新启动其本地代码,但您需要卸载所有相关模块以及所有引用它的模块。这就是为什么正常的做法是让它崩溃
关于node.js - Sails - 捕获导致服务器崩溃的全局适配器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20691691/