- express中间件可以理解为由含有req,res,next三个参数的方法,通过next()无限调用
- 基本样式
(req, res, next) => {//处理方法}
- 使用方法
- 1.无路由配合next()
app.use((req, res, next) => { console.log('请求开始。。。', req.method, req.url); next() })
- 2.无路由没有next()(一般放到最后,所有的路由都没有命中的情况下)
app.use((req, res, next) => { console.log('处理成功'); res.json({ error: 0, msg: '处理成功' }) })
- 3.有路由没有next(),没有嵌套中间件(处理路由api)
app.get('/api/get-cookie', (req, res, next) => { console.log('get /api/get-cookie'); res.json({ error: 0, data: 'get-cookie ok' }) })
- 4.有路由没有next(),有嵌套的中间件(相当于处理路由api时,做一些特定的验证)
// 定义一个中间件 function loginCheck(req, res, next) { console.log('登录失败'); setTimeout(() => { res.json({ errno: -1, msg: '登录失败' }) // next() }); } // 路由嵌套中间件 app.get('/api/get-cookie',loginCheck, (req, res, next) => { console.log('get /api/get-cookie'); res.json({ error: 0, data: req.cookie }) })
- 1.无路由配合next()
网友评论