一、中间件
匹配路由之前和路由完成之后进行的操作就叫中间件
二、中间件函数
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
