一、中间件
匹配路由之前和路由完成之后进行的操作就叫中间件
二、中间件函数
const koa = require("koa");
const app = new koa();
/*
app.use()中间件 -->就是一些第三方的模块
特点:
1.一个应用程序是可以有多个中间件
*/
/* next就是下一个中间函数 */
app.use(async (ctx,next)=>{
console.log(1)
console.log(next())
})
app.use(async ctx=>{
console.log(2)
return 3;
})
app.listen(8080)
三、中间件next
想执行下一个中间件,必须调用next()
const koa = require("koa");
const app = new koa();
/*
app.use()中间件 -->就是一些第三方的模块
特点:
1.一个应用程序是可以有多个中间件
*/
/*
1.next就是下一个中间函数
2.调用next()的时候下个中间会执行
3.阻塞了当前函数
*/
app.use(async (ctx,next)=>{
console.log(1)
var res = await next();
console.log(res);
})
app.use(async ctx=>{
console.log(2)
return 3;
})
app.listen(8080)
四、洋葱模型
const koa = require("koa");
const app = new koa();
/* koa洋葱模型 */
app.use(async (ctx,next)=>{
console.log(1)
await next();
console.log(4)
})
app.use(async (ctx,next)=>{
console.log(2)
await next();
console.log(3)
})
app.listen(8080)
1
2
3
4