中间件
中间件
业务处理的中间环节
中间件不分全局和局部
中间件本质就是一个 function函数
1 | app.use('/api', (req, res, next)=>{ |
next 函数
实现多个中间件连续调用的关键,可以将流转关系转交给下一个中间件或路由
1 | next(); |
定义中间件函数
1 | const mw = function(req, res, next) { |
多个中间件共享同一份 req 和 res
上游中间件挂载在 req 或 res 上的属性是可以被下游中间件调用的
定义多个中间件
1 | app.get('/', [mw1, mw2], (req, res)=>{ |
1 | app.get('/', mw1, mw2, (req, res)=>{ |
上面这两种写法是等价的
注意点
- 中间件必须写在路由之前
- 不要再 next() 后面写业务代码
- 多个连续中间件中的 req对象和 res对象是共享的
中间件分类
- 应用
绑定再 app实例上的中间件
- 路由
绑定在 express.Router实例上的中间件
- 错误
捕获项目中发生的异常错误,防止项目崩溃
1 | function(err, req, res, next) {} |
内置
static:托管静态资源
json:解析 json格式请求体数据
1
2
3
4
5
6
7
8
9
10
11app.use(express.json())
/* 获取传输的数据在 req.body */
````
- urlencoded:解析RUL-encoded格式的请求体数据
```js
app.use(express.urlencoded({extended: false}))
/* 获取传输的数据在 req.body */
第三方
-
感谢你赐予我前进的力量
赞赏者名单
因为你们的支持让我意识到写文章的价值🙏
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 View Room
评论