1.路由之前定义中间件(错误中间件定义在所有路由之后)
2.客户端发过来的请求,可以连续调用多个中间件进行处理
3.执行完中间件业务代码之后调用next()函数
4.防止代码逻辑混乱,调用next()函数后禁止再写代码
5.连续调用多个中间件时,共享req,res对象
中间件分类:
1.应用级中间件:绑定到app
2.路由级中间件:绑定到express.Router()
3.错误级中间件:app.use(function(err,req,res,next){throw new Error('错误')})
4.Express内置中间件:
4.1 express.static
4.2 express.json解析json格式请求体数据
app.use(express.json())
4.3 express.urlencoded解析URL-encoded格式请求体数据
app.use(express.urlencoded({extended: false}))
5.第三方中间件:body-parser
const express = require('express')
const app = express()
app.use(express.json())
app.use(express.urlencoded({extended: false}))
const mw = (req,res,next)=>{
console.log('Hello Word')
next()
}
app.use(mw)
app.post('/',(req,res)=>{
res.send('中间件')
})
app.post('/index',(req,res)=>{
console.log(req.body)
res.send('OK')
})
app.listen(3000,()=>{
console.log('http://127.0.0.1:3000')
})