Express.js 中如何初始化应用程序级中间件?

在 Express.js 中,中间件是一个非常重要的概念。它可以在请求和响应之间执行某些操作,例如验证和处理数据。在 Express.js 中,有两种类型的中间件:应用程序级中间件和路由级中间件。本文将重点介绍如何初始化应用程序级中间件。

什么是应用程序级中间件?

应用程序级中间件是指在整个应用程序中执行的中间件。它们与路由无关,可以在应用程序启动时初始化,执行某些操作,然后在应用程序关闭时清除。

如何初始化应用程序级中间件?

在 Express.js 中,应用程序级中间件可以通过 app.use() 方法初始化。该方法接受一个函数作为参数,该函数将在每个请求上运行。以下是一个简单的示例:

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

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

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

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

在上面的示例中,我们初始化了一个应用程序级中间件,它会在每个请求上记录当前时间。在 app.use() 方法中,我们传递了一个函数,该函数接受三个参数:reqresnextreqres 分别代表请求和响应对象,next 是一个函数,它将控制权传递给下一个中间件或路由处理程序。

在这个例子中,我们调用了 next() 函数来将控制权传递给下一个中间件或路由处理程序。如果我们没有调用 next() 函数,请求将会挂起,直到超时或响应发送为止。

应用程序级中间件的执行顺序

当应用程序收到一个请求时,Express.js 将按照以下顺序执行应用程序级中间件:

  1. 执行所有使用 app.use() 初始化的中间件。
  2. 执行与请求路径匹配的路由中间件。
  3. 执行错误处理中间件(如果有)。

需要注意的是,如果某个中间件调用了 next('route'),则将跳过后续的中间件和路由处理程序,直接执行下一个与请求路径匹配的路由中间件。

如何使用多个应用程序级中间件?

在 Express.js 中,我们可以使用多个应用程序级中间件。以下是一个示例:

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

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

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

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

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

在上面的示例中,我们初始化了两个应用程序级中间件,它们都会在每个请求上运行。在控制台输出中,我们可以看到两个中间件的执行顺序。

结论

在 Express.js 中,应用程序级中间件是非常有用的。它们可以在整个应用程序中执行某些操作,例如记录日志、验证数据等。通过 app.use() 方法,我们可以轻松地初始化应用程序级中间件,并控制它们的执行顺序。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/673e8e6290e7ed93bee3abf4