摘要:使用承諾和異步功能來擺脫回調地獄的應用程序,并簡化錯誤處理。它暴露了自己的和對象,而不是的和對象。因此,可被視為的模塊的抽象,其中是的應用程序框架。這使得中間件對于整個堆棧而言不僅僅是最終應用程序代碼,而且更易于書寫,并更不容易出錯。
Koa 與 Express
此系列文章的應用示例已發布于 GitHub: koa-docs-Zh-CN. 可以 Fork 幫助改進或 Star 關注更新. 歡迎 Star.
在理念上,Koa 旨在 “修復和替換節點”,而 Express 旨在 “增加節點”。
Koa 使用承諾和異步功能來擺脫回調地獄的應用程序,并簡化錯誤處理。
它暴露了自己的 ctx.request 和 ctx.response 對象,而不是 node 的 req 和 res 對象。
另一方面,Express 通過附加的屬性和方法增加了 node 的 req 和 res 對象,并且包含許多其他 “框架” 功能,如路由和模板,而 Koa 則沒有。
因此,Koa 可被視為 node.js 的 http 模塊的抽象,其中 Express 是 node.js 的應用程序框架。
功能 | Koa | Express | Connect |
---|---|---|---|
Middleware Kernel | ? | ? | ? |
Routing | - | ? | - |
Templating | - | ? | - |
Sending Files | - | ? | - |
JSONP | - | ? | - |
因此,如果您想要更接近 node.js 和傳統的 node.js 樣式編碼,那么您可能希望堅持使用Connect/Express 或類似的框架。
如果你想擺脫回調,請使用 Koa。
由于這種不同的理念,其結果是傳統的 node.js “中間件”(即“(req,res,next)”的函數)與Koa不兼容。 你的應用基本上要重新改寫了。
Koa 替代 Express?它更像是 Connect,但是很多 Express 的好東西被轉移到 Koa 的中間件級別,以幫助形成更強大的基礎。 這使得中間件對于整個堆棧而言不僅僅是最終應用程序代碼,而且更易于書寫,并更不容易出錯。
通常,許多中間件將重新實現類似的功能,甚至更糟的是不正確地實現它們, 如簽名的cookie 加密等通常是應用程序特定的,而不是中間件特定的。
Koa 替代 Connect?不,只是不同的功能,現在通過構建器也可以讓我們用較少的回調編寫代碼。 Connect 同樣可以,有些人可能仍然喜歡它,這取決于你喜歡什么。
為什么 Koa 不是 Express 4.0?Koa 與現在所知的 Express 差距很大,設計根本上有很大差異,所以從 Express 3.0 遷移到Express 4.0 將有意味著重寫整個應用程序,所以我們考慮創建一個新的庫。
Koa 與 Connect/Express 有哪些不同? 基于 Promises 的控制流程沒有回調地獄。
通過 try/catch 更好的處理錯誤。
無需域。
Koa 非常精簡不同于 Connect 和 Express, Koa 不含任何中間件.
不同于 Express, 不提供路由.
不同于 Express, 不提供許多便捷設施。 例如,發送文件.
Koa 更加模塊化.
Koa 對中間件的依賴較少例如, 不使用 “body parsing” 中間件,而是使用 body 解析函數。
Koa 抽象 node 的 request/response減少攻擊。
更好的用戶體驗。
恰當的流處理。
Koa 路由(第三方庫支持)由于 Express 帶有自己的路由,而 Koa 沒有任何內置路由,但是有 koa-router 和 koa-route 第三方庫可用。同樣的, 就像我們在 Express 中有 helmet 保證安全, 對于 koa 我們有 koa-helmet 和一些列的第三方庫可用。
如果這篇文章對您有幫助, 感謝 下方點贊 或 Star GitHub: koa-docs-Zh-CN 支持, 謝謝.
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/89470.html
摘要:常見問題此系列文章的應用示例已發布于可以幫助改進或關注更新歡迎替代它更像是,但是很多的好東西被轉移到的中間件級別,以幫助形成更強大的基礎。這使得中間件對于整個堆棧而言不僅僅是最終應用程序代碼,而且更易于書寫,并更不容易出錯。 常見問題 此系列文章的應用示例已發布于 GitHub: koa-docs-Zh-CN. 可以 Fork 幫助改進或 Star 關注更新. 歡迎 Star. Koa...
此系列文章的應用示例已發布于 GitHub: koa-docs-Zh-CN. 可以 Fork 幫助改進或 Star 關注更新. 歡迎 Star. 相關 API 上下文(Context) 請求(Request) 響應(Response) 安裝 Koa 依賴 node v7.6.0 或 ES2015及更高版本和 async 方法支持. 你可以使用自己喜歡的版本管理器快速安裝支持的 node 版本:...
摘要:的對象提供了用于處理響應的方法,該響應委托給。應用對象是與的服務器和處理中間件注冊的接口,從發送到中間件,默認錯誤處理,以及上下文,請求和響應對象的配置。 此系列文章的應用示例已發布于 GitHub: koa-docs-Zh-CN. 可以 Fork 幫助改進或 Star 關注更新. 歡迎 Star. showImg(https://segmentfault.com/img/bVNQYf...
摘要:一個遷移方式是逐個更新它們。刪除特定的日志記錄行為對于環境的顯式檢查從錯誤處理中刪除。直接或它不再使用并已廢棄。支持仍然支持分支,但應該不會得到功能性更新。除了此遷移指南外,文檔將針對最新版本。 從 Koa v1.x 遷移到 v2.x 此系列文章的應用示例已發布于 GitHub: koa-docs-Zh-CN. 可以 Fork 幫助改進或 Star 關注更新. 歡迎 Star. 新的中...
摘要:當中間件運行時,它必須手動調用來運行下游中間件。例如,這個中間件從讀取文件名,然后在將給指定合并結果之前并行讀取每個文件的內容。當你無法控制中間件的名稱時,這很有用。 指南 此系列文章的應用示例已發布于 GitHub: koa-docs-Zh-CN. 可以 Fork 幫助改進或 Star 關注更新. 歡迎 Star. 本指南涵蓋的 Koa 主題不與 API 直接相關,例如編寫中間件的最...
閱讀 1078·2021-11-16 11:44
閱讀 1367·2019-08-30 13:12
閱讀 2400·2019-08-29 16:05
閱讀 3069·2019-08-28 18:29
閱讀 904·2019-08-26 13:41
閱讀 3228·2019-08-26 13:34
閱讀 2595·2019-08-26 10:35
閱讀 931·2019-08-26 10:28