node.js的Web開發框架的選擇?

傳送門:學習node.js服務開發這一篇就夠了系列文章

這個問題貌似在其它的後端開發領域不存在。沒錯,我說的就是隔壁的Java。我要是寫java的應用,能夠堅決果斷的選擇Spring。可是node可選擇的餘地多的多。java

現有node服務端框架

1. Express、Koa

express框架確定不用說了,寫node服務這塊的同窗確定是很是熟悉的框架了。我早期的時候也是express的粉絲。node

優勢:

express的框架結構很是的簡單。通過短暫的學習就能夠用來開發一個項目。很是適合做爲node新手的入門框架。web

缺點:

開發階段:

Express的缺點也很明顯,因爲結構簡單,自由度高。每一個人會有不一樣的文件編排方式。前期設計階段須要人工的把項目約定作好。可是團隊來新人了,又要從新學習項目約定,無形中增長了學習成本。說到底仍是缺少項目的工程化約束。在項目的開發初期須要本身手工的搭建一些通用的腳手架代碼,來方便的以後的開發工做。開發流程會拖的比較長。express

運維階段:

因爲node單進程,js主線程運行的機制。若是在js主線程中沒有作好錯誤的處理。會致使進程意外退出的問題。這在項目運行階段是不可接受的問題。須要進程守護的機制來保證程序的健壯性。Express和Koa須要依賴第三方的工具來實現。如PM2。講道理這些功能應該是一個web開發框架應該具有的基礎功能。segmentfault

總結:

無論是Express仍是Koa框架。仍是處於比較簡單的基於http模塊的封裝。在Reuest和Response這兩個對象基礎上進行擴展開發。咱們業務開發團隊須要的是穩定、快速的開發框架。實際開發中每每須要在Express和Koa的基礎上封裝大量的代碼,來適應不一樣的業務場景,這對追求快速開發的互聯網行業是不受歡迎的。後端

2. Egg.js

我在2018年3月份開始接觸egg框架。發現這是一個具有較完善功能的web開發框架。框架

優勢:

方便、好用、少寫不少的腳手架級別的代碼。專一於業務邏輯的開發。內建插件機制,兼容koa插件。約定大於配置。內置多進程管理。阿里巴巴開源。文檔是中文的。估計沒點自虐傾向的同窗通常都會選擇母語版本的文檔來看吧。運維

缺點:

因爲目前的使用層面還不夠深刻。除了對應用配置方式的不太滿意外,沒有發現大的開發痛點。項目開發實踐下來,開發效率槓槓的。koa

總結:

估計寫到這裏,應該能看出我對egg框架的喜好程度了。那麼下面學習一下egg入門。工具

相關文章
相關標籤/搜索