nest.js,egg.js,midway,express,koa的區(qū)別小結
前言
隨著nest.js框架逐漸火起來,對于沒有接觸過nest的小伙伴可能會疑惑nest是什么?在你了解了nest.js是什么的前提下,你可能會疑惑nest.js與傳統(tǒng)的koa、express有什么區(qū)別?針對這兩個問題,結合了網上的一些文章,做一個簡單的總結。
nest是什么?

nest的定義是一個漸進式的Node.js框架,用于構建高效,可靠和可擴展的服務器端應用程序;不要問我為什么要放圖,據說放圖可以提高訪問量。
nest是一個封裝了node的有規(guī)范的框架,什么是有規(guī)范?意思是必須按照它制定的一套規(guī)則來寫代碼,否則程序就會無法運行。上手成本稍高一點,但是后期維護與擴展會很方便。
nest屬于前端ts大趨勢下深度使用注解特性并提供各種增強開發(fā)體驗的框架,它提供了一套完整的解決方案,包含了認證、數(shù)據庫、路由、http狀態(tài)碼、安全、配置、請求等開箱即用的技術。
nest.js與koa、express有什么區(qū)別?

koa是一個擁有洋蔥模型中間件的http處理庫,一個請求,經過一系列的中間件,最后生成響應。Koa的大致實現(xiàn)原理:context上下文的保存和傳遞,中間件的管理和next方法的實現(xiàn)。
大概過程:我們koa常用的app.use方法就是將一系列中間件的方法存進了一個數(shù)組,app.listen底層用http.createServer(this.callback())進行封裝,傳進createServer的回調函數(shù)通過compose來處理中間件集合(就是遞歸遍歷中間件數(shù)組的過程),通過req,res(這兩個對象封裝了node的原生http對象)創(chuàng)建上下文,并返回一個處理請求的函數(shù)(參數(shù)是上下文,中間件集合(類似一個鏈表))。
區(qū)別
koa本身幾乎不帶任何其他的庫,如果需要使用路由、錯誤處理、認證等功能需要自己安裝并引入,什么都需要自己DIY。而使用nest.js時就不需要考慮這些問題了,依賴注入,pipe,guard,interceptor等機制,基本覆蓋各種開發(fā)需要,開箱即用。
koa常常與express一起比較,都是偏底層的無態(tài)度的Web框架;而nest.js應該和egg.js,midway這種框架比較。egg.js源于阿里,它的企業(yè)級規(guī)范很多,但各方面能力極強,定位是框架的框架,其再上一層還有midwayjs,完全兼容ts,支持注解,一點都不輸與Nest;此外國內做企業(yè)級NodeJS框架的越來多啦,比如剛出來的daruk等,用過Java Spring 框架和 Angular的同學會發(fā)現(xiàn)NEST借鑒了兩者很多的特性。
egg.js是在koa的基礎上做了一層很好的面向大型企業(yè)級應用的框架封裝,現(xiàn)在也有了非常好的TS特性支持。egg.js更多的是按照洋蔥模型的開發(fā)方式,和AOP編程還是有點區(qū)別的。而nest配合TYPEORM可以在node下?lián)碛胁惠擲PRING的面向切面編程的體驗~
中小型項目推薦egg.js,上手快,概念易懂;大型項目不妨試試NEST.js+typeorm。如果你需要使用一些技術,例如認證、數(shù)據庫等支持,那么你可能得去搜索、折騰一番,才能知道搭配哪個庫,才行。
到此這篇關于nest.js,egg.js,midway,express,koa的區(qū)別小結的文章就介紹到這了,更多相關nest.js,egg.js,midway,express,koa內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Windows系統(tǒng)下使用Sublime搭建nodejs環(huán)境
最近在研究Nodejs開發(fā),俗話說,工欲善其事,必先利其器,當然要找到一款用著順手的編輯器作為開始。這里我們選擇的是Sublime Text 3,除了漂亮的用戶界面,最吸引我的就是它的插件擴展功能以及跨平臺特性。2015-04-04
koa+mongoose實現(xiàn)簡單增刪改查接口的示例代碼
這篇文章主要介紹了koa+mongoose實現(xiàn)簡單增刪改查接口的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-05-05
node的process以及child_process模塊學習筆記
這篇文章主要介紹了node的process以及child_process模塊學習筆記,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-03-03
使用iojs的jsdom庫實現(xiàn)同步系統(tǒng)時間
本文給大家分享的是使用iojs的jsdom庫實現(xiàn)與http://open.baidu.com/special/time/ 同步系統(tǒng)時間。思路非常的清晰,這里推薦給大家,有需要的小伙伴可以參考下。2015-04-04
windows系統(tǒng)下安裝npm(Node.js)方法教程
在Windows環(huán)境下進行Node.js的安裝并不是一件復雜的事情,但是在安裝過程中需要注意一些細節(jié),下面這篇文章主要給大家介紹了關于windows系統(tǒng)下安裝npm(Node.js)的相關資料,需要的朋友可以參考下2023-12-12

