在 NodeJS 官方文档中,有一个代码示例,当域中出现异常时,进程会尝试正常退出(它关闭连接,等待一段时间等待其他请求,然后退出)。
但是为什么不发送 500 错误并继续工作呢?
在我的应用程序中,当用户输入无效时,我想抛出一些预期的错误(如 FrontEndUserError),并在中间件的某处捕获这些异常以向客户端发送漂亮的错误消息。使用域很容易实现,但是这有什么陷阱吗?
app.use (err, req, res, next) ->
if err instanceof FrontEndUserError
res.send {error: true, message: err.message}
else
log err.trace
res.send 500