Express和 Koa 的区别

1. Koa 原理

  • 封装请求和响应
  • 通过U型模型/洋葱模型构造中间件

2. 跟Express的区别

2.1 编程模型不同

  • Express的中间件是线型的


    Express和 Koa 的区别_第1张图片
    Express的中间件模型
  • Koa 的中间件是U型的(洋葱模型)


    Express和 Koa 的区别_第2张图片
    Koa 的中间件模型

2.2 对语言特性的使用不同

  • express使用回调函数next()
  • koa v1.x 使用generator 语法
  • koa v2.x 使用async/await 语法

2.3 没有内置中间件

2.4 Koa API

基本和Express一样

3. Koa API 概览

主要有四部分内容:

  • app.xxx // application 应用
  • ctx.xxx // context 上下文
  • ctx.request.xxx
  • ctx.response.xxx

3.1 app.xxx

  • app.use(fn) 插入中间件
  • app.on('error',fn) 错误处理
  • app.emit() 触发事件

3.2 ctx.xxx

  • ctx.req nodejs封装的请求
  • ctx.res
  • ctx.request Koa封装的请求
  • ctx.response
  • ctx.state // 跨中间件分享状态

3.3 ctx.request.xxx 获取请求相关的数据

  • request.method
  • request.path
  • request.query
  • request.get()

3.4 ctx.response.xxx

  • response.status 设置状态码
  • response.body 设置响应体
  • response.set() 设置header
  • response.append

你可能感兴趣的:(Express和 Koa 的区别)