1,中间件的概念
中间件:是特指业务流程的中间处理环节。
2,Express中间件的调用流程
当一个请求到达Express的服务器之后,可以连续调用多个中间件,从而对这次请求进行预处理。
3,Express中间件的格式
Express中间件本质上就是一个function处理函数,则格式如下:
app.use(function(req,res,next){
console.log("我是一个中间件");
res.age = 18;
console.log(req.names);
next();
})
使用中间件的特点:
使代码更简洁,共享数据
使用中间件需要的五个注意:
1.注册中间件需要放置在请求之前
2.可以连续调用多个中间件
3.执行完每一个中间件后需要添加next()
4.执行完next之后不要在写业务逻辑
5.多个中间件之间可以共享req和res
4,中间件的分类
<1>应用级中间件:通过app.use()或app.get()或app.post()绑定到app实例上的中间件叫做应用级中间件,代码实例:
app.use((req,res,next)=>{
console.log("应以级中间件");
next();
})
app.get("/",(req,res)=>{
res.send("get请求成功");
})
<2>路由级中间件:通过绑定在app.Router()实例上的中间件叫做路由级中间件,代码实例:
const routes = express.Router();
routes.use((req,res,next)=>{
console.log("路由级中间件");
next();
})
app.use(routes);
app.get("/",(req,res)=>{
res.send("get请求成功");
})
<3>错误级中间件:用于捕捉异常错误的中间件,代码实例:
app.get("/",(req,res)=>{
res.send("请求失败");
throw new Error("服务器内部请求错误");
})
app.use((err,req,res,next)=>{
console.log(`错误中间件捕捉的信息为--${err.message}`);
})