在 Express.js 中,中间件是一个非常重要的概念。它可以在请求和响应之间执行某些操作,例如验证和处理数据。在 Express.js 中,有两种类型的中间件:应用程序级中间件和路由级中间件。本文将重点介绍如何初始化应用程序级中间件。
什么是应用程序级中间件?
应用程序级中间件是指在整个应用程序中执行的中间件。它们与路由无关,可以在应用程序启动时初始化,执行某些操作,然后在应用程序关闭时清除。
如何初始化应用程序级中间件?
在 Express.js 中,应用程序级中间件可以通过 app.use()
方法初始化。该方法接受一个函数作为参数,该函数将在每个请求上运行。以下是一个简单的示例:
----- ------- - ------------------ ----- --- - --------- -- ----------- ------------- ---- ----- -- - -------------------- ----------- ------ -- -- -- ------------ ----- ---- -- - --------------- -------- -- -- ------ ---------------- -- -- - -------------------- --- --------- -- ---- ------- --
在上面的示例中,我们初始化了一个应用程序级中间件,它会在每个请求上记录当前时间。在 app.use()
方法中,我们传递了一个函数,该函数接受三个参数:req
、res
和 next
。req
和 res
分别代表请求和响应对象,next
是一个函数,它将控制权传递给下一个中间件或路由处理程序。
在这个例子中,我们调用了 next()
函数来将控制权传递给下一个中间件或路由处理程序。如果我们没有调用 next()
函数,请求将会挂起,直到超时或响应发送为止。
应用程序级中间件的执行顺序
当应用程序收到一个请求时,Express.js 将按照以下顺序执行应用程序级中间件:
- 执行所有使用
app.use()
初始化的中间件。 - 执行与请求路径匹配的路由中间件。
- 执行错误处理中间件(如果有)。
需要注意的是,如果某个中间件调用了 next('route')
,则将跳过后续的中间件和路由处理程序,直接执行下一个与请求路径匹配的路由中间件。
如何使用多个应用程序级中间件?
在 Express.js 中,我们可以使用多个应用程序级中间件。以下是一个示例:
----- ------- - ------------------ ----- --- - --------- -- ----------- - ------------- ---- ----- -- - ----------------------- --- ------ -- -- ----------- - ------------- ---- ----- -- - ----------------------- --- ------ -- -- -- ------------ ----- ---- -- - --------------- -------- -- -- ------ ---------------- -- -- - -------------------- --- --------- -- ---- ------- --
在上面的示例中,我们初始化了两个应用程序级中间件,它们都会在每个请求上运行。在控制台输出中,我们可以看到两个中间件的执行顺序。
结论
在 Express.js 中,应用程序级中间件是非常有用的。它们可以在整个应用程序中执行某些操作,例如记录日志、验证数据等。通过 app.use()
方法,我们可以轻松地初始化应用程序级中间件,并控制它们的执行顺序。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/673e8e6290e7ed93bee3abf4