简介
中间件是一个特殊的url地址处理函数,中间件是 express 的最大特色,也是最重要的一个设计。Express是一个自身功能极简,完全是路由和中间件构成一个web开发框架:从本质上来说,一个Express应用就是在调用各种中间件。
一个 express 应用,就是由许许多多的中间件来完成的
作用
1.执行任何代码。
2.修改请求和响应对象。
3.终结请求-响应循环(结束请求)。
4.调用堆栈中的下一个中间件
分类
1.应用级中间件 server.use(express.static('public'))
2.路由级中间件
3.错误处理中间件
4.内置中间件 app.use(express.static('public'))
5.第三方中间件
const multer = require('multer')
app.post("/postfile",upload.single('cover'), function(req,res){
// req.file 记录了文件上传的信息
// req.body 记录了其它普通参数(非文件)的信息
// 其它操作
res.send({msg: 'pk'})
})
定义
// 具名函数格式:
const handler1 = (req, res, next) => {
console.log(Date.now());
next();
}
app.use(handler1);
/ 匿名函数格式:
app.use((req, res, next) => {
console.log(Date.now());
next();
});
中间件函数中有三个基本参数, req、res、next
1.req就是请求相关的对象,它和下一个中间件函数中的req对象是一个对象
2.res就是响应相关的对象,它和下一个中间件函数中的res对象是一个对象
3.next:它是一个函数,调用它将会跳出当前的中间件函数,执行后续中间件;如果不调 用 next,也不执行res.end,则整个请求都会在当前中间件卡住。