Express和 Koa 的区别

1. Koa 原理

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

2. 跟Express的区别

2.1 编程模型不同

  • Express的中间件是线型的


    Express的中间件模型
  • Koa 的中间件是U型的(洋葱模型)


    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
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容