Express和 Koa 的区别
2020-11-19 本文已影响0人
lzb30
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