egg.js和nest.js的對比
前幾天突然看到一個羣在說現在用egg的人已經很少了,說用nest的人比較多,然後我就做了一個簡單的調查和對比。
egg和nest都是比較優秀的框架,但是兩個框架有比較大的區別,我主要分爲六個方面來分析egg和nest的區別
github
在github對比兩個框架的使用人數,在github還是比較有代表性的。
egg nest
Github.user_by 9.4k 21.5k
Github.watch 480 568
Github.star 15k 25.1k
Github.fork 1.5k 2k
這裏對比看來還是使用nest的人比較多一點
依賴的底層框架
egg nest
koa框架 express框架
兩大基礎框架的優缺點
Express:express框架歷史悠久,路由已經封裝在express內部了,調用比較方便,但是express中的callback hell這個處理起來就比較麻煩
Koa:express是比較年輕的框架,他使用了async/await這種異步回調函數大大減少了callback的麻煩,但是koa的路由有引入新的插件纔可以解決。
開發文檔
Egg:說實話egg的開發文檔還是比較完美的,東西寫的比較全也很齊
Nest:nest的開發文檔就比較一般般,可以區他們官方文檔對比一下就知道了。
模塊或者插件
Egg:在egg上面,插件是使用加載然後掛載的原理掛載到各個對象,這個優點就是基於egg中的loader和egg-core
Nest:在nest模塊加載方面,主要使用的是模塊容器-依賴注入(通過裝飾器和元數據實現)
代碼風格
Egg: 在egg裏面的代碼風格主要是Classify,在egg裏面有私有屬性與慢初始化的特點。
Nest: 在nest裏面的風格主要是ts風格,如果你會java或者前端的Angular框架可能就對nest的代碼風格比較熟悉。
特點
Egg:在egg裏面我很喜歡它的一個特點“約束優於配置”,有這個特點就可以減少企業制定的規則。Egg還可以制上層框架的能力,就是企業可以根據自己的需求開發出屬於自己的框架。還有高度可擴展的插件機制 內置多進程管理。
Nest:在nest裏面最大的特點可能就是,依賴注入容器,模塊化封裝,ts風格,模塊封裝就是每一個應用的每個邏輯都是一個模塊,而且可以封裝