# 三.Koa.js
# 1. koa 和 express 的区别
- 异步流程的控制:express 采用 callback 来处理异步,koa2 采用的是 async/await
- 错误处理:express 采用 callback 捕获异常,对深层次的异常捕获不了,koa 采用 try/catch
# 2. koa 中间件执行机制
- 添加中间件的方式是使用 koa 实列的 use 方法,并传入一个 generator 函数,这个 generator 函数接受一个 next 参数
- use 的原理:function Application(){ this.middleware =[] }
- 每次执行 use 方法,就把外面传进来的 generator 函数 push 到 middleware 数组中
- koa 中是预先通过 use 方法,将请求可能会经过的中间件装在一个数组中
- callback 函数就是请求到来的事件执行的回调。把装着中间件 middleware 的数组作为参数传递为 compose 这个方法
- componse 把毫无关系的一个一个中间件给收尾串起来了,就好比我们平常的烤面筋
- 作为参数传递给前一个中间件,当最后一个中间件的参数 next 是空的 generator 函数生成对象
← 二.Express.js 四.Egg.js →