1 应用级中间件 (用于权限判断)
在匹配路由之前,做一些操作, next之后会继续匹配路由
app.use((res, req, next) => {
console.log(new Date())
next()
})
2 路由级中间件
在动态路由之前,可以特定匹配某些字符
3 错误处理中间件
用于判断路由之后
app.use((res, req, next) => {
res.status(404).send("404")
})
4 内置中间件
即 静态web服务
5 第三方中间件
body-parser
https://www.npmjs.com/package/body-parser
const bodyParser = require('body-parser')
// parse application/x-www-form-urlencoded
app.use(bodyParser.urlencoded({ extended: false }))
// parse application/json
app.use(bodyParser.json())
app.post('/doLogin', (req, res) => {
var body = req.body;
console.log(body)
res.send(body.username + ':' + body.password);
})
特别的,如果路由模块化的话,或者每个接口函数需要不同的解析的时候,可以这么写:
var router = express.Router()
const bodyParser = require('body-parser')
var jsonParser = bodyParser.json()
router.post('/', jsonParser, async (req, res) => {
})