如果没有中间件处理它,那么传递给“next”的错误会发生什么?

时间:2018-05-08 18:20:26

标签: node.js express error-handling

在Express中,我可以通过将错误传递给next函数回调来处理错误。如果我已经注册了错误处理中间件函数,则会调用该错误。

如果没有中间件来处理错误,或者该中间件是否也通过next传递错误,那么错误会在哪里?

我没有在'uncaughtException'或'unhandledRejection'中看到错误。

(我正在使用Express v4.16.2)

2 个答案:

答案 0 :(得分:0)

我认为答案是它们被吞下,因此错误消息中可能包含的敏感信息不会被记录。您应该编写自己的中间件来为您的应用程序做一些有用的事情。我相信在以前的版本中默认行为已经改变,因此请检查您所使用的版本并查看预期的内容。

答案 1 :(得分:0)

我在express docs找到了答案。

  

Express附带内置错误处理程序,可处理应用程序中可能遇到的任何错误。此缺省错误处理中间件函数将添加到中间件函数堆栈的末尾。

     

如果您将错误传递给next()并且您没有在错误处理程序中处理它,它将由内置错误处理程序处理;错误将通过堆栈跟踪写入客户端。堆栈跟踪不包含在生产环境中。