# 三、koa

# 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 函数生成对象
上次更新: 2022/6/29 上午12:09:44