对koa中洋葱模型的理解?
对koa中洋葱模型的理解?
Koa是一个精简的node框架,被认为是第二代Node框架,其最大的特点就是独特的中间件流程控制,是一个典型的洋葱模型,它的核心工作包括下面
- 将node原生的req和res封装成为一个context对象。
- 基于async/await的中间件洋葱模型机制。
什么是洋葱模型
Koa的洋葱模型是以next()函数为分割点,先右外到内执行Request的逻辑,然后再由内到外执行Response的逻辑,这里的request的逻辑,我们可以理解为是next之前的内容,也可以说每一个中间件都有两次处理时机。洋葱模型的核心原理主要是借助compose方法。为了大家更好的理解什么是洋葱模型 ,我们可以看下面图片:
koa1和koa2在源码上有区别吗?
1.Koa1是使用generator、yield的模式。
2.Koa2使用的是async/await + Promise的模式。
为什么需要洋葱模型?
因为很多时候,在一个app里面有很多个中间件,有些中间件需要依赖其他中间件的结果,洋葱模型可以保证执行的顺序,如果没有洋葱模型,执行顺序可能出乎我们的预期。
CSDN-Ada助手: CS入门 技能树或许可以帮到你:https://edu.csdn.net/skill/gml?utm_source=AI_act_gml