為什麼要在2021年放棄ExpressJS -DEV
Express是Node.js生態系統中的事實庫,目前已經使用了很多年。當您尋找任何學習Node的教程時,Express就會被呈現並教給人們。
在最新的JS狀況調查中,Express在所有類別中均排名第一。
儘管如此,Express並不是一項出色的技術,您從2015年起就應該停止使用它:
1. Express多年未更新,其下一個版本已經發布了6年。
人們可能會認為它沒有更新,因為API穩定並且不需要更改。現實是:Express不知道如何處理async/await。
2.Express是一個支援中介軟體的路由庫,但仍稱為“框架”。在構建應用程式時,您需要比路由系統更多的功能。
你需要:
- 訪問資料庫;
- 驗證您的資料;
- 建立認證層;
- 建立授權系統;
- 等等。
所有這些功能都不在Express中,需要由您自己貼上。自己貼上這些模組意味著要冒所有風險,嚮應用程式新增記憶體洩漏,安全漏洞和錯誤。最重要的是,您只是在浪費時間和金錢,因為您不應該為此負責。
備選方案
您應該檢視fastify。
該框架維護良好,並為Express提供了官方的相容性層,以幫助您遷移應用程式。
如果您希望擁有一個範圍廣泛的功能齊全的框架,讓您專注於業務邏輯,則可以使用AdonisJS。
沒有理由繼續使用Express,只有今天可以避免的未來痛苦。
我討厭Express嗎?
本部分的目的是在本文中新增免責宣告。我不討厭Express。我分享自己的觀點,以幫助其他人做出明智的決定,而不是跟風。
Express是Node.js生態系統中的第一個框架之一,多年來一直很棒!但是現在,該放手了。
我想進一步推動Node.js生態系統,並幫助新手學習不會在他們手中爆炸的技術。
相關文章
- 為什麼放棄jQueryjQuery
- twitter為什麼放棄cassandra
- 為什麼都放棄了LangChain?LangChain
- 我為什麼放棄MySQL?選擇了MongoDBMySqlMongoDB
- 為什麼放棄精準測試平臺?
- 為什麼 Ubuntu 放棄 Unity?創始人如是說UbuntuUnity
- 為什麼 husky 放棄了傳統的 JS 配置JS
- [譯] 為什麼我放棄了 React 而轉向 Vue。ReactVue
- 為什麼5000+企業放棄Sonatype,選擇JFrog Artifactory
- 企業為什麼要放棄區塊鏈,轉向雲端?區塊鏈
- 為什麼JavaWeb放棄jsp,去做前後端分離JavaWebJS後端
- 5個理由:紅帽為什麼要放棄桌面LinuxLinux
- 為什麼我們放棄了 Vue?Vue 和 React 深度對比VueReact
- 為什麼華為、百度紛紛選擇OKR,放棄KPI?OKRKPI
- 放棄遊戲業務 迪士尼的神奇魔法為什麼不靈了?遊戲
- 為什麼阿里的dubbo註冊中心要放棄zookeeper, 而用Nacos?阿里
- 為什麼要在GoDaddy註冊域名Go
- 為什麼要在密碼里加點“鹽”密碼
- 為什麼我要在2018年學習Python?Python
- 為什麼需要Deno.js? - DEVJSdev
- 為什麼品牌電商紛紛放棄爬蟲而轉向RPA?爬蟲
- Javaweb開發為什麼需要分前後端,放棄原生JSPJavaWeb後端JS
- 為什麼我們要在遊戲裡“牽手”?遊戲
- 七年iOS工作經驗的我為什麼放棄了iOS而選擇了AndroidiOSAndroid
- 為什麼很多SpringBoot開發者放棄了Tomcat,選擇了UndertowSpring BootTomcat
- 為什麼我們放棄使用Kafka Streams實現全部的事件溯源?-MateuszKafka事件
- 蘋果放棄英特爾晶片,為什麼會打擊美國計算機產業?蘋果晶片計算機產業
- 放棄RxBus,擁抱RxJava(一):為什麼避免使用EventBus/RxBus | 掘金技術徵文RxJava
- 為什麼開發者應該摒棄敏捷?敏捷
- 什麼是SSL證書?為什麼要在網站上安裝SSL證書?網站
- GitHub:我們為什麼會棄用jQuery?GithubjQuery
- 為什麼我棄用Angular,轉向ReactAngularReact
- [Flutter翻譯]為什麼要在Flutter中使用隔離物?Flutter
- 為什麼要在JAVA工廠模式中使用靜態方法Java模式
- 起薪12500的Python,為什麼有些人自學幾天就放棄了?Python
- 為什麼你應該放棄React老的Context API用新的Context APIReactContextAPI
- 為什麼我們放棄 Python 而選擇 Go?(getstream.io 的架構變遷)PythonGo架構
- K8s 為什麼要棄用 Docker?K8SDocker