简要分析Koa!
提到Koa,我们肯定要说说它的中间件。
在 Koa 的世界里,万物皆中间件,实际上一个 Koa 应用就是一个对象,这个对象包含一个中间件数组。
中间件(也称为前置和后置钩子)是异步函数执行过程中传递的控制的函数。这些中间件由外而内相互嵌套,执行完毕之后再由内到外依次执行回调。
那么我们先来看一个图:
这个图是Koa
中间件使用的模型,也被称为洋葱圈模型。
它的中间件执行顺序,我们可以理解为栈,“先进后出”模式。
每一个中间件就类似每一层洋葱圈,上一小节的例子中:
- 第一个中间件 "x-response-time" 就好比洋葱的最外层
- 第二个中间件 "logger" 就好比第二层
- 第三个中间件 "response" 就好比最里面那一层,所有的请求经过中间件的时候都会执行两次。