Express.js 是一款流行的 Node.js Web 框架,因其快速和简单而备受欢迎。这里将探讨如何在 Express.js 中使用中间件处理请求和响应。
什么是中间件?
中间件是 Express.js 中用于处理请求和响应的函数。它们可以在处理请求前执行某些任务,并且可以对响应进行修改。常见的中间件包括身份验证、日志记录、缓存等。
中间件主要分为两种:应用程序级别中间件和路由级别中间件。应用程序级别中间件可以处理所有进入应用程序的请求,而路由级别中间件只能处理特定路由的请求。
应用程序级别中间件
要在应用程序级别向 Express.js 添加中间件,请使用 app.use()
方法。以下示例演示了如何添加一个日志记录中间件:
const express = require('express'); const app = express(); app.use((req, res, next) => { console.log('Time: ', Date.now()); next(); });
上述代码定义了一个应用程序级别中间件,它打印当前时间并调用 next()
函数。 next()
函数会将应用程序控制权交给下一个匹配的中间件或路由处理程序。
路由级别中间件
要在特定路由级别向 Express.js 添加中间件,请使用 router.use()
方法。以下示例演示了如何为 /users
路由添加一个身份验证中间件:
-- -------------------- ---- ------- ----- ------- - ------------------- ----- --- - ---------- ----- ---------- - ----------------- -------------------- ---- ----- -- - -- ------------------- - ------------------------------------- - ---- - ------- - --- -------------------------- ----- ---- -- - -- --------- --- ----------------- ------------
上述代码定义了一个路由级别的中间件,它检查用户是否已经登录并处理请求或将其拒绝。
中间件链
在 Express.js 中,可以使用多个中间件处理请求和响应。例如,以下示例演示了一个包含多个中间件的路由:
-- -------------------- ---- ------- ----- ------- - ------------------- ----- --- - ---------- ----- ------ - ----------------- ---------------- ---- ----- -- - ------------------ -- ------------ ------- --- ---------------- ---- ----- -- - -------- - ---------- -- ------ ------- --- --------------- ----- ---- -- - --------------- ------------------- --- ------------ --------
在上述代码中,router
变量定义了一个包含两个中间件的路由。第一个中间件记录请求时间,第二个中间件检索当前用户,并将其存储在请求对象的 user
属性中。最后,路由响应 Hello
和用户的名称。
结论
中间件是 Express.js 最强大和最有用的功能之一。它们使开发人员能够轻松地处理和修改请求和响应,从而提高了 Web 应用程序的可靠性和安全性。利用中间件可以快速实现很多功能模块,并且也是提高Web应用程序架构在设计上非常重要的特性。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/674aaa24a1ce0063549a5f2e