Express中间件 :
Express中间件是⼀个函数或函数链,它们在处理请求和响应之间执⾏⼀些操作。中间件充当了Express 应⽤程序的“中间层”,可以⽤于执⾏各种任务,如身份验证、⽇志记录、数据转换和错误处理。中间件 可以在路由处理程序之前或之后执⾏,允许您在请求流程中添加⾃定义逻辑。
创建⾃定义中间件
Express 的中间件,本质上就是⼀个 function 处理函数
注意:中间件函数的形参列表中,必须包含 next 参数,⽽路由处理函数中只包含 req 和 res
next 函数的作⽤:
next 函数是实现多个中间件连续调⽤的关键,它表示把流转关系转交给下⼀个中间件或路由
中间件初体验:
全局⽣效的中间件:是客户端发起的任何请求,达到服务器之后,都会触发的中间件
-
通过app.use(中间件函数),即可定义⼀个全局⽣效的中间件
const express = require('express'); const bodyParser = require('body-parser') const cors = require('cors') const app = express(); app.use(bodyParser.urlencoded({ extended: false })) app.use(cors()) const todoRouter = require('./router/todoRouter'); app.use('/todo', todoRouter); app.listen(3000,() => { console.log("服务启动成功,运行在 http://localhost:3000"); })
中间件的5个使⽤注意事项:
- ⼀定要在路由之前注册中间件,如果直接匹配到路由就会直接响应了。
- 客户端发送过来的请求,可以连续调⽤多个中间件进⾏处理
- 执⾏完中间件的业务代码之后,不要忘记调⽤ next() 函数
- 为了防⽌代码逻辑混乱,调⽤ next() 函数后不要再写额外的代码
- 连续调⽤多个中间件时,多个中间件之间,共享req 和 res 对象