在 Express.js 中理解 `next/next()`

阅读时长 3 分钟读完

介绍

在编写 Express.js 代码时,你可能会遇到 next 或者 next() 函数。它们通常用于中间件和路由函数中,并且是 Express.js 应用程序处理流程中非常重要的一部分。但是,初学者经常会对这两个概念感到困惑。本文将详细介绍 next/next() 的作用、用法以及如何正确使用它们。

nextnext() 的作用

在 Express.js 应用程序中,当请求被接收并传递给服务器时,每个中间件或路由函数都有机会执行操作。如果您希望应用程序能够继续到下一个中间件或路由函数,则必须调用 next() 函数。否则,请求将被阻止,不会进入下一个中间件或路由函数,并返回响应。

例如,以下代码演示了一个简单的 Express.js 中间件:

-- -------------------- ---- -------
--------------------- ---- ----- -
  ----------------- ---------- ---- -- -------- --------
  -------
---

------------ ------------- ---- -
  ----------------- ----- ------- ---- -- -------- ---------
  --------------- ---------
---

当浏览器发送 HTTP GET 请求时,上面代码中第一个中间件将首先被执行,显示 This middleware will be executed first。然后,由于在中间件中调用了 next(),请求将继续执行下一个路由处理程序。在这种情况下,它是根路由处理程序并向客户端发送 "Hello World!"。

如果您不调用 next(),则 Express.js 不会继续执行下一个中间件或路由函数,并且客户端将永远不会收到响应。这意味着在编写中间件和路由处理程序时,非常重要的一点是要始终确保正确地使用 next() 函数。

nextnext() 的用法

在 Express.js 中,nextnext() 通常作为回调函数传递给中间件和路由处理程序。例如:

当中间件或路由处理程序完成处理时,你需要调用 next() 来确保请求继续流经下一个中间件或路由处理程序。

-- -------------------- ---- -------
--------------------- ---- ----- -
  ----------------- ---------- ---- -- -------- --------
  -------
---

------------ ------------- ---- ----- -
  ----------------- ----- ------- ---- -- -------- ---------
  --------------- ---------
---

如何正确使用 nextnext()

虽然 nextnext() 看起来非常简单,但在实际应用中,有很多注意事项需要注意。以下是一些使用它们时要记住的重要事项:

  • 一定要调用 next():如果您希望应用程序能够继续到下一个中间件或路由函数,则必须调用 next() 函数。否则请求将被阻止,不会进入下一个中间件或路由函数,并返回响应。
  • 要注意中间件和路由处理程序的顺序: Express.js 应用程序处理流程是按照它们在代码中定义的顺序执行中间件和路由函数的。因此,如果您希望某个中间件在另一个中间件之前执行,请确保将其放置在代码中正确的位置。
  • 使用 nextnext() 时要小心:过度使用 nextnext() 可能会导致性能问题和代码难以维护。请记住,在每个中间件和路

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/605430188d846479e750ac4e

纠错
反馈