KOA --- 2. 洋葱模型

一、什么是koa的洋葱模型 【KOA --- 2. 洋葱模型】特点: 独特的中间件流程控制,就是典型的洋葱模型
二、解析洋葱模型 KOA --- 2. 洋葱模型
文章图片

在两个中间件函数,用 next 隔开
对应的代码Demo

const Koa = require('koa')const app = new Koa()// #1 app.use( async (ctx, next) => { console.log('1') await next() console.log('1') })// #2 app.use( async (ctx, next) => { console.log('2') await next() console.log('2') })// 设置访问端口号 app.listen(3000, () => { console.log('koa服务启动成功,可以访问localhost:3000') })

输出顺序是 : 1 、2、2、1
三、洋葱模型的注意:
  • 为了保证洋葱模型的执行,每个中间件必须加async,如果有下一个中间件的 next()必须加 await
四、为什么一定要按照洋葱模型
  • 可以保证你要获取的 上下文信息ctx,可以获取到
app.use( async (ctx, next) => { console.log('1')await next() console.log(ctx.r) // 获取到下面的 上下文console.log('1') })app.use( async (ctx, next) => { console.log('2')ctx.r = 'res' // 传递上下文 next()//next() console.log('2') })

    推荐阅读