Express 面试题
目录

Express 中如何处理错误?

· 约 4 分钟读完 · 第 40 / 120 章

推荐答案

在 Express 中,错误处理可以通过以下几种方式实现:

  1. 同步代码中的错误处理:Express 会自动捕获同步代码中的错误,并将其传递给错误处理中间件。

  2. 异步代码中的错误处理:对于异步代码,可以通过 next(err) 将错误传递给错误处理中间件。

  3. 自定义错误处理中间件:可以定义一个错误处理中间件,专门处理应用程序中的错误。

  4. 使用 try-catch 捕获异步错误:在异步函数中,可以使用 try-catch 捕获错误,并通过 next(err) 传递给错误处理中间件。

示例代码:

本题详细解读

1. 同步代码中的错误处理

在 Express 中,如果同步代码中抛出错误,Express 会自动捕获这些错误,并将其传递给错误处理中间件。例如:

当访问 /sync-error 路由时,Express 会捕获到抛出的错误,并将其传递给错误处理中间件。

2. 异步代码中的错误处理

对于异步代码,Express 无法自动捕获错误,因此需要手动将错误传递给错误处理中间件。可以通过 next(err) 实现:

在这个例子中,next(new Error('异步错误')) 会将错误传递给错误处理中间件。

3. 自定义错误处理中间件

Express 允许定义自定义的错误处理中间件,专门处理应用程序中的错误。错误处理中间件有四个参数:err, req, res, next。

在这个例子中,错误处理中间件会捕获所有传递过来的错误,并返回一个 500 状态码和错误信息。

4. 使用 try-catch 捕获异步错误

在异步函数中,可以使用 try-catch 捕获错误,并通过 next(err) 传递给错误处理中间件:

这种方式可以确保异步函数中的错误被正确捕获并传递给错误处理中间件。