背景:vue
Express, 瘋通常快速(而簡潔)的服務端JavaScript Web開發框架,基於Node.js和V8 JavaScript引擎。node
Express 是一個基於 Node.js 平臺的極簡、靈活的 web 應用開發框架,它提供一系列強大的特性,幫助你建立各類 Web 和移動設備應用。react
豐富的 HTTP 快捷方法和任意排列組合的 Connect 中間件,讓你建立健壯、友好的 API 變得既快速又簡單。web
Express 不對 Node.js 已有的特性進行二次抽象,咱們只是在它之上擴展了 Web 應用所需的基本功能。小程序
2009年6月26日,TJ Holowaychuk提交了Express的第一次commit,接下來在2010年1月2日,有660次commits的Express 0.0.1版本正式發佈。TJ和Ciaron Jessup是當時最主要的兩個代碼貢獻者。微信小程序
差很少5年的時間過去了,Express擁有了4,925次commit,如今Express的最新版本是4.10.1,由StrongLoop維護,由於TJ如今已經跑去玩Go了.api
優勢:緩存
Express擁有的社區不只僅是上面三者當中最大的,而且是全部Node.js web應用程序框架當中最大的。在通過其背後差很少5年的發展和在StrongLoop的掌管下,它是三者當中最成熟的框架。它爲服務器啓動和運行提供了簡單的方式,而且經過內置的路由提升了代碼的複用性。服務器
缺點:微信
使用Express須要手動處理不少單調乏味的任務。它沒有內置的錯誤處理。當你須要解決某個特定的問題的時候,你會容易迷失在衆多能夠添加的中間件中,在Express中,你有太多方式去解決同一個問題。Express自誇爲高度可配置,這有好處也有壞處,對於準備使用Express的剛入門的開發者來講,這不是一件好的事情。而且對比起其餘框架來講,Express體積更大。
背景:
koa 是由 Express 原班人馬打造的,致力於成爲一個更小、更富有表現力、更健壯的 Web 框架。使用 koa 編寫 web 應用,經過組合不一樣的 generator,能夠免除重複繁瑣的回調函數嵌套,並極大地提高錯誤處理的效率。koa 不在內核方法中綁定任何中間件,它僅僅提供了一個輕量優雅的函數庫,使得編寫 Web 應用變得駕輕就熟。
大概在差很少一年前的2013年8月17日,TJ Holowaychuk(又是他!)隻身一人提交了Koa的第一次commit。他描述Koa爲「表現力強勁的Node.js中間件,經過co使用generators使得編寫web應用程序和REST API更加絲般順滑」。Koa被標榜爲只佔用約400行源碼空間的框架。Koa的目前最新版本爲0.13.0,擁有583次commits。
優勢:
Koa有着傲人的身材(體積小),它表現力更強;對比起其餘框架,它使得中間件的編寫變的更加容易。Koa基本上就是一個只有骨架的框架,你能夠選擇(或者本身寫一個)中間件,而不用妥協於Express或者Hapi它們自帶的中間件。它也是惟一一個採用ES6的框架,例如它使用了ES6的generators。
缺點:
Koa有缺點嗎?
背景
Hapi.js 是一個用來構建基於 Node.js 的應用和服務的富框架,使得開發者把重點放在便攜可重用的應用邏輯而不是構建架構。內建輸入驗證、緩存、認證和其餘 Web 應用開發經常使用的功能。
2011年8月5日,WalmartLabs的一位成員Eran Hammer提交了Hapi的第一次commit。Hapi本來是Postmile的一部分,而且最開始是基於Express構建的。後來它發展成本身本身的框架,正如Eran在他的博客裏面所說的:Hapi基於這麼一個想法:配置優於編碼,業務邏輯必須和傳輸層進行分離...
Hapi最新版本爲7.2.0,擁有3,816次commits,而且仍然由Eran Hammer維護。
優勢:
Hapi自豪地宣稱它本身是基於配置優於編碼的概念,而且不少開發者認爲這是一件好事。在團隊項目開發中,能夠很容易地加強一致性和可複用性。做爲有着大名鼎鼎的WalmartLabs支持的框架和其餘響噹噹的企業在實際生產中使用Hapi,它已經通過了實際戰場的洗禮,企業們能夠沒有擔心地基於Hopi運行本身的應用程序。全部的跡象都代表Hapi向着成爲的偉大的框架的方向持續成熟。
缺點:
Hapi絕逼適合用來開發更大更復雜的應用。但對於一個簡單的web app來講,它的可能有點兒堆砌太多樣板代碼了。並且Hapi的可供參考樣例太少了,或者說開源的使用Hapi的應用程序太少了。因此選擇它對開發者的要求更高一點,而不是所使用的中間件。
Egg.js 是阿里開源的企業級框架,旨在幫助開發團隊和開發人員下降開發和維護成本。
egg繼承於koa,而 Egg 選擇了 Koa 做爲其基礎框架,在它的模型基礎上,進一步對它進行了一些加強。
優缺點:不詳。
若是你閱讀到這裏了,若是你恰巧在學習node,相信你已經知道該如何選擇了吧。
小編才疏學淺,只能帶你飛到這裏了,接下來你們加油!!!
若是你在使用這些框架的過程當中,有什麼心得體會或好的建議,熱烈歡迎你在下面留言哈。
更多angular1/2/四、ionic1/2/三、react、vue、微信小程序、nodejs等技術文章、視頻教程和開源項目,請關注微信公衆號——全棧弄潮兒。