1. Koa 原理
- 封裝請求和響應(yīng)
- 通過U型模型/洋蔥模型構(gòu)造中間件
2. 跟Express的區(qū)別
2.1 編程模型不同
-
Express的中間件是線型的
-
Koa 的中間件是U型的(洋蔥模型)
2.2 對語言特性的使用不同
- express使用回調(diào)函數(shù)next()
- koa v1.x 使用generator 語法
- koa v2.x 使用async/await 語法
2.3 沒有內(nèi)置中間件
2.4 Koa API
基本和Express一樣
3. Koa API 概覽
主要有四部分內(nèi)容:
- app.xxx // application 應(yīng)用
- ctx.xxx // context 上下文
- ctx.request.xxx
- ctx.response.xxx
3.1 app.xxx
- app.use(fn) 插入中間件
- app.on('error',fn) 錯誤處理
- app.emit() 觸發(fā)事件
3.2 ctx.xxx
- ctx.req nodejs封裝的請求
- ctx.res
- ctx.request Koa封裝的請求
- ctx.response
- ctx.state // 跨中間件分享狀態(tài)
3.3 ctx.request.xxx 獲取請求相關(guān)的數(shù)據(jù)
- request.method
- request.path
- request.query
- request.get()
3.4 ctx.response.xxx
- response.status 設(shè)置狀態(tài)碼
- response.body 設(shè)置響應(yīng)體
- response.set() 設(shè)置header
- response.append