1. Koa 简介
koa
是由Express
原班人马打造的,致力于成为一个更小、更富有表现力、更健壮的Web
框架。使用koa
编写web
应用,通过组合不同的generator
,可以免除重复繁琐的回调函数嵌套,并极大地提升错误处理的效率。koa
不在内核方法中绑定任何中间件,它仅仅提供了一个轻量优雅的函数库,使得编写Web
应用变得得心应手1.1 更小
koa
体积更小(500多行)、轻量。需要单独下载中间件配合开发。express
内置了很多中间件,集成度高。
1.2 富有表现力
需要编写的代码越少,程序就容易维护和调试。可读性高,编译器和人理解更简单。
1.3 更健壮
容错能力强,异常处理方便,程序不会挂掉,很好地抛异常。
2. 中间件机制
学习 Koa
重点在于理解中间件实现原理,对后续引用第三方库中间件时候有更好了解。
Koa
的应用程序其实就是一个包含一组中间件函数的对象,通过app.use
函数来加载中间件(也有引入顺序要求),这个函数有两个参数,context
指的是上下文环境对象,封装了一些属性;next
用于把中间件的执行权交给下游的中间件,在当前中间件中位于next()
之后的代码会暂停执行,直到最后一个中间件执行完毕,再自下而上依次执行每个中间件中next
值周的代码,类似于栈的先进后出。这种模型被称作“洋葱圈模型”。
简单的理解中间件呢,我觉得就是两边对称,举个例子:有个数组,奇数个也好,偶数个也罢。
代码语言:txt复制const arr = [1, 2, 3, 2, 1]
程序从走向右执行,1
是一个中间件中的代码,同理 2
3
。只是在两个 1
中间有个 next()
指向 2
,2
中有个 next()
指向 3
。但是 next()
执行完后还会回到当前的中间件(不知道是否解释清了,还是更乱了