筆者最開始學的后端技術是 python 的 Django 框架,由于很久沒有使用過 python 語法,便想著了解一些 nodejs 的后端技術。下面將最近的收獲總結一下。
1
Express
官方描述:Express 是基于 Node.js 平臺,快速、開放、極簡的Web 開發框架。
對于node.js來說,Express 是一個第三方模塊,有豐富的 API 支持,強大而靈活的中間件特性,Express 不對 Node.js 已有的特性進行二次抽象,只是在它之上擴展了 Web 應用所需的基本功能。
express 出來的時候,es6 的標準沒有出來。而node的事件處理的方式都是基于 callback 的這種形式,在當時來看,這種方式是比較好的一種方式。所以 express 里面的中間件處理的方式基本上都是回調。
es6 的出現,帶來了許多新的標準。使得express 不得不考慮需要兼容es6中的語法, 而 es6中處理異步的方式是promise,還有后面陸續的 async 和 await 等語法糖。
2
Koa.js
官方描述:koa 是由 Express 原班人馬打造的,致力于成為一個更小、更富有表現力、更健壯的 Web 框架。
koa 的設計理念是一個極簡的http請求框架,相較于 express 相對全面的中間件庫而言,koa 僅實現了網絡請求相關的核心功能,額外的功能可以依靠koa社區生態提供的中間件實現。
koa 提出了一種稱之為洋蔥模型的結構:對于每個中間件,在完成了一些事情后,可以非常優雅的將控制權傳遞給下一個中間件,并能夠等待它完成,當后續的中間件完成處理后,控制權又回到了自己,可以用下面的圖來形象的表示:
3
**Nest.js
**
官方描述:Nest.js 是用于構建高效且可伸縮的服務端應用程序的漸進式 Node.js 框架。
NestJs是一個構建高效、可擴展的Node.js服務端應用框架。它使用漸進式JavaScript,支持TypeScript,結合了OOP(面向對象編程)、FP(功能編程)、FRP(功能反應式編程)。
NestJs提供了一個開箱即用的框架,能夠創建可測試、可擴展、低耦合和易于維護的應用程序。它一部分的思想受到了了Angular的啟發。
從書寫方式上來看,Nest.js 和傳統的后端架構很相似,后端轉前端用這玩意應該很舒服,不過既然已經是后端開發者,那為什么不用偏后端語言和框架來寫后端呢?
4
**Prisma
**
官方描述:Prisma 是一個下一代 Node.js、TypeScript、Go 的數據庫 ORM
主要提供用于數據庫的對象模型,包含下面三個部分:
- Prisma Client: orm本體,可以使用js查詢數據庫
- Prisma Migrate: 遷移工具,將.prisma文件中的數據庫建模遷移到數據庫
- Prisma Studio: 可視化查看數據庫的GUI,web端實現
與傳統 ORM 不同,ORM 是映射數據庫的表到編程語言上的類。而 Prisma 是一個數據庫工具,能夠根據數據模型生成特定的查詢工具。
從設計目的上來講,Prisma最初是GraphCool其中一部分,后來獨立開源出來。Prisma是最簡單&快速構建GraphQL后端服務的方式。它的數據模型也和GraphQL很是相似。
5
**strapi
**
官方描述:[strapi]是一種靈活的、開放源碼的無頭CMS (內容管理系統)
strapi服務基于koa2,可以通過可視化頁面簡單的操作數據庫建表、修改數據、配置權限等等,前端可以根據RESTful API 設計規范請求strapi默認配置的接口,獲取到數據庫的數據,甚至可以使用graphql等插件。
6
小結
對于上面的幾門技術而言,strapi是其中上手門檻最低、功能也相對較為全面的。筆者也將于接下來的一些課程設計中使用。
個人認為,學習一門技術,并非要看其是否流行、是否大而全,適合自己目前需求的技術才是最好的技術。
-
python
+關注
關注
56文章
4821瀏覽量
85666 -
nodejs
+關注
關注
0文章
20瀏覽量
4332 -
后端
+關注
關注
0文章
32瀏覽量
2352
發布評論請先 登錄
相關推薦
buildroot中添加nodejs后推薦加哪些包?





【WRTnode2R試用體驗】nodejs
nodejs與java的互調用方法
數字IC后端設計介紹,寫給哪些想轉IC后端的人!
后端系統,后端系統是什么意思
數字后端關于Litho Grid基本概念介紹詳解
數字后端基本概念介紹

IC設計前后端流程與EDA工具介紹
使用Homebridge和HAP NodeJS來模擬HomeKit API

數字后端基本概念介紹—FinFET Grid

評論