【點擊查看文中的相關源碼】
根據官網的介紹,Koa 是一個新的 Web 框架,致力於成為 Web 應用和 API 開發領域中的一個更小、更富有表現力和更健壯的基石。
通過 async 函數,Koa 不僅遠離回調地獄,同時還有力地增強了錯誤處理。而且,一個關鍵的設計點是在其低級中間件層中提供了高級“語法糖”,這包括諸如內容協商,緩存清理,代理支持和重定向等常見任務的方法。
基礎
實際上,我們常見的
什麼是koa?
koa是Express的下一代基於Node.js的web框架。使用 koa 編寫 web 應用,通過組合不同的 generator,可以免除重複繁瑣的回調函數嵌套,並極大地提升常用錯誤處理效率。Koa 不在內核方法中綁定任何中間件,它僅僅提供了一個輕量優雅的函數庫,使得編寫 Web 應用和API變得得心應手。
Koa能幹什麼?
主要用途
網站(比如cnode這樣的論壇)
ap
koa-logger源碼解析
以GET請求“/”為例子,koa-logger會打印以下日誌:
-- GET /
GET / - 790ms
-- GET / 200 803ms 185b
分為是請求與響應的日誌
// koa-logger 主函數
function dev (opts) {
// print函數,默認參數為空時是調用console.log,如果有transporter選
1、術語
併發 vs 並行
併發和並行是相關的概念,但有一些小的區別。併發意味着兩個或多個任務正在取得進展,即使它們可能不會同時執行。例如,這可以通過時間切片來實現,其中部分任務按順序執行,並與其他任務的部分混合。另一方面,當執行的任務可以真正同時進行時,就會出現並行
簡單説啓動一個線程在一個core上就是並行,啓動兩個線程在一個core上就是併發
異步 vs 同步
如果調用者