一、什么是koa
的洋葱模型 【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')
})
推荐阅读
- 携程实习篇|Node.js之process进程
- node中package.json和package-lock.json文件的作用
- sequlize统一格式化时间
- egg 如何接收xml数据
- Node.js在WebStorm中调试
- node npm 设置全局仓库路径
- node require 导入模块解析 加载规则和加载机制
- node|node.js学习笔记-模块module
- window node配置安装的全局模块所在的路径cache的路径
- node|node.js express性能优化