此係列文章的應用示例已發佈於 GitHub: koa-docs-Zh-CN. 能夠 Fork 幫助改進或 Star 關注更新. 歡迎 Star.node
它更像是 Connect,可是不少 Express 的好東西被轉移到 Koa 的中間件級別,以幫助造成更強大的基礎。 這使得中間件對於整個堆棧而言不單單是最終應用程序代碼,並且更易於書寫,並更不容易出錯。git
一般,許多中間件將從新實現相似的功能,甚至更糟的是不正確地實現它們, 如簽名的cookie 加密等一般是應用程序特定的,而不是中間件特定的。github
不,只是不一樣的功能,如今經過構建器也可讓咱們用較少的回調編寫代碼。 Connect 一樣能夠,有些人可能仍然喜歡它,這取決於你喜歡什麼。cookie
不 - Koa 沒有開箱即用的路由, 可是有不少路由中間件可用: https://github.com/koajs/koa/...koa
Koa 與如今所知的 Express 差距很大,設計根本上有很大差別,因此從 Express 3.0 遷移到Express 4.0 將有意味着重寫整個應用程序,因此咱們考慮建立一個新的庫。加密
Koa 使用它的自定義對象: ctx
, ctx.request
, 和 ctx.response
.
這些對象使用便捷的方法和 getter/setter 來抽象 node 的 req
和 res
對象。設計
一般,添加到這些對象的屬性必須遵循如下規則:code
許多 ctx.request
和 ctx.response
的屬性都被委託給 ctx
。
若是它是一個 getter/setter,那麼 getter 和 setter 都將嚴格對應於 ctx.request
或 ctx.response
。中間件
附加其餘屬性以前,請考慮這些規則。對象
若是這篇文章對您有幫助, 感謝 下方點贊 或 Star GitHub: koa-docs-Zh-CN 支持, 謝謝.