0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

nodejs 后端技術(shù)介紹

jf_78858299 ? 來源:哈工大威海網(wǎng)絡(luò)中心 ? 作者:長夜 ? 2023-05-05 16:41 ? 次閱讀

筆者最開始學(xué)的后端技術(shù)是 python 的 Django 框架,由于很久沒有使用過 python 語法,便想著了解一些 nodejs 的后端技術(shù)。下面將最近的收獲總結(jié)一下。

1

Express

官方描述:Express 是基于 Node.js 平臺,快速、開放、極簡的Web 開發(fā)框架。

對于node.js來說,Express 是一個(gè)第三方模塊,有豐富的 API 支持,強(qiáng)大而靈活的中間件特性,Express 不對 Node.js 已有的特性進(jìn)行二次抽象,只是在它之上擴(kuò)展了 Web 應(yīng)用所需的基本功能。

express 出來的時(shí)候,es6 的標(biāo)準(zhǔn)沒有出來。而node的事件處理的方式都是基于 callback 的這種形式,在當(dāng)時(shí)來看,這種方式是比較好的一種方式。所以 express 里面的中間件處理的方式基本上都是回調(diào)。

es6 的出現(xiàn),帶來了許多新的標(biāo)準(zhǔn)。使得express 不得不考慮需要兼容es6中的語法, 而 es6中處理異步的方式是promise,還有后面陸續(xù)的 async 和 await 等語法糖。

2

Koa.js

官方描述:koa 是由 Express 原班人馬打造的,致力于成為一個(gè)更小、更富有表現(xiàn)力、更健壯的 Web 框架。

koa 的設(shè)計(jì)理念是一個(gè)極簡的http請求框架,相較于 express 相對全面的中間件庫而言,koa 僅實(shí)現(xiàn)了網(wǎng)絡(luò)請求相關(guān)的核心功能,額外的功能可以依靠koa社區(qū)生態(tài)提供的中間件實(shí)現(xiàn)。

koa 提出了一種稱之為洋蔥模型的結(jié)構(gòu):對于每個(gè)中間件,在完成了一些事情后,可以非常優(yōu)雅的將控制權(quán)傳遞給下一個(gè)中間件,并能夠等待它完成,當(dāng)后續(xù)的中間件完成處理后,控制權(quán)又回到了自己,可以用下面的圖來形象的表示:

3

**Nest.js

**

官方描述:Nest.js 是用于構(gòu)建高效且可伸縮的服務(wù)端應(yīng)用程序的漸進(jìn)式 Node.js 框架。

NestJs是一個(gè)構(gòu)建高效、可擴(kuò)展的Node.js服務(wù)端應(yīng)用框架。它使用漸進(jìn)式JavaScript,支持TypeScript,結(jié)合了OOP(面向?qū)ο?a target="_blank">編程)、FP(功能編程)、FRP(功能反應(yīng)式編程)。

NestJs提供了一個(gè)開箱即用的框架,能夠創(chuàng)建可測試、可擴(kuò)展、低耦合和易于維護(hù)的應(yīng)用程序。它一部分的思想受到了了Angular的啟發(fā)。

從書寫方式上來看,Nest.js 和傳統(tǒng)的后端架構(gòu)很相似,后端轉(zhuǎn)前端用這玩意應(yīng)該很舒服,不過既然已經(jīng)是后端開發(fā)者,那為什么不用偏后端語言和框架來寫后端呢?

4

**Prisma

**

官方描述:Prisma 是一個(gè)下一代 Node.js、TypeScript、Go 的數(shù)據(jù)庫 ORM

主要提供用于數(shù)據(jù)庫的對象模型,包含下面三個(gè)部分:

  • Prisma Client: orm本體,可以使用js查詢數(shù)據(jù)庫
  • Prisma Migrate: 遷移工具,將.prisma文件中的數(shù)據(jù)庫建模遷移到數(shù)據(jù)庫
  • Prisma Studio: 可視化查看數(shù)據(jù)庫的GUI,web端實(shí)現(xiàn)
    與傳統(tǒng) ORM 不同,ORM 是映射數(shù)據(jù)庫的表到編程語言上的類。而 Prisma 是一個(gè)數(shù)據(jù)庫工具,能夠根據(jù)數(shù)據(jù)模型生成特定的查詢工具。
    從設(shè)計(jì)目的上來講,Prisma最初是GraphCool其中一部分,后來獨(dú)立開源出來。Prisma是最簡單&快速構(gòu)建GraphQL后端服務(wù)的方式。它的數(shù)據(jù)模型也和GraphQL很是相似。

5

**strapi

**

官方描述:[strapi]是一種靈活的、開放源碼的無頭CMS (內(nèi)容管理系統(tǒng))

strapi服務(wù)基于koa2,可以通過可視化頁面簡單的操作數(shù)據(jù)庫建表、修改數(shù)據(jù)、配置權(quán)限等等,前端可以根據(jù)RESTful API 設(shè)計(jì)規(guī)范請求strapi默認(rèn)配置的接口,獲取到數(shù)據(jù)庫的數(shù)據(jù),甚至可以使用graphql等插件。

6

小結(jié)

對于上面的幾門技術(shù)而言,strapi是其中上手門檻最低、功能也相對較為全面的。筆者也將于接下來的一些課程設(shè)計(jì)中使用。

個(gè)人認(rèn)為,學(xué)習(xí)一門技術(shù),并非要看其是否流行、是否大而全,適合自己目前需求的技術(shù)才是最好的技術(shù)。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • python
    +關(guān)注

    關(guān)注

    55

    文章

    4768

    瀏覽量

    84376
  • nodejs
    +關(guān)注

    關(guān)注

    0

    文章

    20

    瀏覽量

    4218
  • 后端
    +關(guān)注

    關(guān)注

    0

    文章

    31

    瀏覽量

    2201
收藏 人收藏

    評論

    相關(guān)推薦

    buildroot中添加nodejs后推薦加哪些包?

    現(xiàn)有一IoT中運(yùn)行的nodejs 16項(xiàng)目,計(jì)劃用buildroot部署在設(shè)備上。我將開發(fā)板中的buildroot升級后,成功編譯運(yùn)行了nodejs16本體。但在啟動項(xiàng)目、依賴等時(shí)遇到各種“依賴
    發(fā)表于 11-01 12:57

    02.002 NodeJS入門 為什么要學(xué)習(xí)NodeJS

    nodejs
    充八萬
    發(fā)布于 :2023年07月19日 14:27:44

    07.007 NodeJS入門 命令的結(jié)構(gòu)

    nodejs
    充八萬
    發(fā)布于 :2023年07月19日 14:30:13

    04.004 NodeJS入門 NodeJS的作用 #硬聲創(chuàng)作季

    nodejs
    充八萬
    發(fā)布于 :2023年07月19日 14:33:58

    05.005 NodeJS入門 NodeJS的安裝

    nodejs
    充八萬
    發(fā)布于 :2023年07月19日 14:35:12

    01.001 NodeJS視頻簡介

    nodejs
    充八萬
    發(fā)布于 :2023年07月19日 19:05:48

    【W(wǎng)RTnode2R試用體驗(yàn)】nodejs

    看官網(wǎng)信息,WRTnode2R是支持nodejs的,但是我通過opkg命令無法下載nodejs。有誰有二進(jìn)制安裝包的?官網(wǎng)鏈接地址:http://wrtnode.cc/html/hardware_2.html#wrtnode2r
    發(fā)表于 12-05 19:34

    nodejs與java的互調(diào)用方法

    nodejs 與java的互調(diào)用方法很多,我們可選的是使用oracle 新的vm 引擎(graalvm很不錯) 還有就是基于browserify進(jìn)行包裝,同時(shí)給java 提供一套require
    發(fā)表于 11-04 07:31

    數(shù)字IC后端設(shè)計(jì)介紹,寫給哪些想轉(zhuǎn)IC后端的人!

    膜制造。  IC后端設(shè)計(jì)工具介紹:  數(shù)字后端設(shè)計(jì)中常用的工具主要由Cadence, Synopsys和Mentor三大公司推出。  邏輯綜合工具:Synopsys DC ,Cadence Genus
    發(fā)表于 12-29 11:53

    后端系統(tǒng),后端系統(tǒng)是什么意思

    后端系統(tǒng),后端系統(tǒng)是什么意思 “后端系統(tǒng)”從寬泛的角度上講是指向用戶提供數(shù)據(jù)的服務(wù)器、超級服務(wù)器、群集系統(tǒng)、中程系統(tǒng)以及
    發(fā)表于 04-06 17:21 ?3678次閱讀

    數(shù)字后端關(guān)于Litho Grid基本概念介紹詳解

    數(shù)字后端基本概念介紹——Litho Grid,今天要介紹的數(shù)字后端基本概念是Litho Grid,中文名,光刻格點(diǎn)。又被稱為制造單元格點(diǎn),這是最基本的網(wǎng)格單元,任何元件都要對Litho
    的頭像 發(fā)表于 12-14 17:05 ?4904次閱讀

    數(shù)字后端基本概念介紹

    今天要介紹的數(shù)字后端基本概念是boundary cell,也被稱為endcap Cell。Endcap是一種特殊的標(biāo)準(zhǔn)單元。在后端物理設(shè)計(jì)中,除了與,非,或等一些常見的標(biāo)準(zhǔn)單元外,還有一些特殊的物理單元(physical cel
    的頭像 發(fā)表于 03-16 11:10 ?2.3w次閱讀
    數(shù)字<b class='flag-5'>后端</b>基本概念<b class='flag-5'>介紹</b>

    IC設(shè)計(jì)前后端流程與EDA工具介紹

    本文首先介紹了ic設(shè)計(jì)的方法,其次介紹了IC設(shè)計(jì)前段設(shè)計(jì)的主要流程及工具,最后介紹了IC設(shè)計(jì)后端設(shè)計(jì)的主要流程及工具。
    發(fā)表于 04-19 18:04 ?1.2w次閱讀

    使用Homebridge和HAP NodeJS來模擬HomeKit API

    電子發(fā)燒友網(wǎng)站提供《使用Homebridge和HAP NodeJS來模擬HomeKit API.zip》資料免費(fèi)下載
    發(fā)表于 07-10 10:42 ?0次下載
    使用Homebridge和HAP <b class='flag-5'>NodeJS</b>來模擬HomeKit API

    數(shù)字后端基本概念介紹—FinFET Grid

    今天要介紹的數(shù)字后端基本概念是FinFET Grid,它也是一種設(shè)計(jì)格點(diǎn)。介紹該格點(diǎn)前,我們首先來了解一下什么是FinFET技術(shù)。
    發(fā)表于 07-12 17:31 ?1182次閱讀
    數(shù)字<b class='flag-5'>后端</b>基本概念<b class='flag-5'>介紹</b>—FinFET Grid