Express 中 next 函数的作用是什么?

· 约 2 分钟读完 · 第 114 / 120 章

推荐答案

在 Express 中,next 函数用于将控制权传递给下一个中间件或路由处理程序。它可以用于跳过当前中间件、传递错误、或继续执行后续的中间件。

本题详细解读

1. 基本作用

next 是 Express 中间件函数中的一个参数,通常作为第三个参数传递。它的主要作用是将控制权传递给下一个中间件或路由处理程序。如果没有调用 next(),请求将被挂起,不会继续执行后续的中间件或路由处理程序。

2. 使用场景

  • 跳过当前中间件:在某些条件下,你可能希望跳过当前中间件的执行,直接调用 next() 进入下一个中间件。
  • 传递错误:你可以通过 next(error) 将错误传递给错误处理中间件。Express 会跳过所有非错误处理中间件,直接调用错误处理中间件。
  • 继续执行后续中间件:在完成当前中间件的处理后,调用 next() 可以继续执行后续的中间件或路由处理程序。

3. 示例代码

4. 注意事项

  • 如果不调用 next(),请求将被挂起,客户端将不会收到响应。
  • 如果调用 next(error),Express 会跳过所有非错误处理中间件,直接调用错误处理中间件。
  • next() 只能在中间件或路由处理程序中使用,不能在普通的回调函数中使用。