在Express.js中,错误处理是通过中间件来处理的。 当一个请求处理过程中发生错误或异常时,中间件可以拦截这些错误并作出相应的处理。
Express.js提供了一个专门用于处理错误的中间件函数,即错误处理中间件。通过在应用程序中使用app.use()
或者路由中使用router.use()
将错误处理中间件添加到中间件链中,可以捕获和处理在请求处理过程中发生的错误。
下面是一个示例,展示了如何处理错误:
在上述示例中,通过app.use()
将错误处理中间件添加到中间件链的末尾。当其他中间件中调用next(err)
时,就会跳转到错误处理中间件,并将错误对象作为第一个参数传递给错误处理中间件。在错误处理中间件中,可以根据需要处理错误对象,例如打印错误信息、记录日志或发送自定义错误响应。
注意❗
需要注意的是,错误处理中间件必须定义为带有四个参数的函数,以便正确识别为错误处理中间件。第一个参数是错误对象,之后是请求、响应和next函数。
除了使用错误处理中间件外,还可以使用try-catch
语句来捕获同步操作中的错误,并使用next(err)
方法将错误传递给错误处理中间件。
在异步操作中,可以使用Promise的.catch()
捕获错误并通过next(err)
方法将其传递给错误处理中间件,或者使用async/await
语法结合try-catch
来处理异步错误。