前言
什麼?這是一篇原始碼解讀文章 ? 那一定很枯燥!不看。
我把 Koa 的核心實現剝離成了 7 個小節,循序漸進,一步一步帶你走進 Koa 的內心世界,不會幹巴巴的很難啃~
我沒用過 Koa,會不會看不懂 ?
每個核心實現我都做了實踐和 demo~,非常簡單易懂(看不懂打我)~
Koa 是什麼
Koa 是一個新的 web 框架,由 Express 幕後的原班人馬打造, 致力於成為 web 應用和 API 開發領域中的一個更小、更富有表現力、更健壯的基石。 通過利用 async 函式,Koa 幫你丟棄回撥函式,並有力地增強錯誤處理。 Koa 並沒有捆綁任何中介軟體, 而是提供了一套優雅的方法,幫助您快速而愉快地編寫服務端應用程式。
Koa 組成
Koa 原始碼非常的精簡,只有 4 個檔案
-
application.js (koa 入口,koa 中介軟體管理,請求處理,本文重點講解.)
-
context.js (koa 上下文物件,代理 request 與 response 物件的一些方法和屬性)
-
request.js (koa 請求物件,基於 node http 模組請求資訊進行二次封裝,並定義一些屬性和方法,引用一張圖,可以很清楚的看到 request 做了什麼)
-
response.js (koa 響應物件,基於 node http 模組響應資訊進行二次封裝,並定義一些屬性和方法,引用一張圖,可以很清楚的看到 response 做了什麼)