自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

為什么會 Js 但是依然不會寫 Node?原因竟是這三點...

開發(fā) 前端
不使用框架,僅使用 NodeJS 的原生 API(path模塊、http模塊 等),想要構(gòu)建一個后端項目,肯定是非常困難的。

Hello,大家好,我是 Sunday。

前兩天有個同學(xué)問我說:“學(xué)到什么程度才是 node js 入門?”

圖片圖片

這個問題不是第一次聽到了,之前也有問到過類似的問題。

其實所謂 Node 和 NodeJS 是不太一樣的:

  • Node:指的是一個運行環(huán)境。就像瀏覽器一樣,是 js 代碼執(zhí)行的位置。我們下載的這個安裝包,其實就是 node,也就是運行環(huán)境。

圖片圖片

  • Nodejs:指的是在 node 環(huán)境中執(zhí)行的 js 代碼。只要你會 js,那么就 “天生入門”。

所以 對于前端來說,“NodeJS 天生入門”。

那么為什么所有的同學(xué)都會 NodeJS,但是卻 不會使用 NodeJS 搭建后端項目呢?

其實原因主要有三點:

  1. 不熟悉 Nodejs 的 API
  2. 不熟悉 后端開發(fā)邏輯
  3. 不會使用 Nodejs 的框架

關(guān)于 node API

在前端的學(xué)習(xí)中,我們通常都需要學(xué)習(xí) BOM 和 DOM 的概念。它們兩個都是在瀏覽器中所獨有的。

但是在 Node 環(huán)境下,它是有一套獨有的 API 的

圖片圖片

如果想要使用 Node,那么就必須要了解這些 API 才可以。

關(guān)于后端開發(fā)邏輯

什么是后端開發(fā)邏輯呢?咱們舉個例子:

比如在前端項目中,我們可能會經(jīng)常使用 Vuex || Redux 來保存當(dāng)前用戶的狀態(tài)。但是在服務(wù)端中,是 不可以 直接使用全局狀態(tài)管理工具來保存用戶狀態(tài)的。

因為對于后端來說,不存在 當(dāng)前用戶的概念。后端會通過 會話機(jī)制 來管理用戶狀態(tài),而不是像前端那樣直接使用全局狀態(tài)管理工具。

除此之外,還有 數(shù)據(jù)庫操作、事務(wù)處理、并發(fā)處理 等等,這些操作在前端都是沒有的。

所以,如果沒有這些后端開發(fā)邏輯,那么想要完成對應(yīng)的后端開發(fā),就是天方夜譚了。

關(guān)于Node框架

不使用框架,僅使用 NodeJS 的原生 API(path模塊、http模塊 等),想要構(gòu)建一個后端項目,肯定是非常困難的。(就好比現(xiàn)在讓大家不使用任何框架,搭建一個前端項目一樣)。

關(guān)于Node框架

所以說,想要使用 NodeJS 搭建自己的后端項目,那么除了要了解 JavaScript 之外,還需要掌握 NodeJS 框架的使用。

我在這里給大家構(gòu)建了一個表格,描述了目前最火的 5 個 NodeJS 框架的特點,以供大家參考:

框架

主要特征

優(yōu)點

缺點

Express.js:最老牌

– 簡約、靈活、高度定制

– 中間件支持

– 強(qiáng)大的路由

– 與模板引擎和數(shù)據(jù)庫兼容

– 易于學(xué)習(xí)和使用

– 豐富的文檔和社區(qū)支持

– 高度可定制

– 與更具主見的框架相比,缺乏內(nèi)置功能

– 在較大的應(yīng)用程序中,中間件管理可能變得復(fù)雜

koa.js:和 Express 是一家

– Async/await 實現(xiàn)更好的控制流

– 輕量級和模塊化

– 增強(qiáng)上下文處理

– 代碼更清晰,可讀性更強(qiáng)

– 更好地控制請求/響應(yīng)處理

– 鼓勵模塊化架構(gòu)

– 與 Express.js 相比,社區(qū)規(guī)模較小

– 常見任務(wù)需要更多手動設(shè)置

NestJS:最強(qiáng)大,大型應(yīng)用必備

– 模塊化架構(gòu)

– 完全支持 TypeScript

– 內(nèi)置依賴注入

– 支持微服務(wù)和 GraphQL

– 強(qiáng)大的 TypeScript 支持

– 結(jié)構(gòu)良好、可擴(kuò)展的應(yīng)用程序

– 豐富的內(nèi)置功能和模塊

– 學(xué)習(xí)難度較高,尤其是對于 TypeScript 新手來說

– 對于簡單的項目來說可能有點過度

Fastify:不直觀

– 高性能,低開銷

– 基于 JSON Schema 的驗證和序列化

– 強(qiáng)大的插件架構(gòu)

– 速度極快且輕量

– 內(nèi)置驗證和序列化

– 高度注重性能

– 與 Express.js 相比,生態(tài)系統(tǒng)較小

– 對于習(xí)慣于傳統(tǒng)框架的開發(fā)人員來說,直觀性較差

Hapi.js:以配置為中心

– 以配置為中心

– 全面的插件系統(tǒng)

– 強(qiáng)大的安全功能和輸入驗證

– 高度可配置性和可擴(kuò)展性

– 高度注重安全性和輸入驗證

– 大量插件和內(nèi)置功能

– 更復(fù)雜的配置設(shè)置

– 與 Express.js 相比,學(xué)習(xí)曲線更陡峭

責(zé)任編輯:武曉燕 來源: 程序員Sunday
相關(guān)推薦

2025-04-21 01:10:00

jsnode代碼

2013-08-23 14:22:45

SA系統(tǒng)管理員運維

2022-01-26 13:28:43

手機(jī)內(nèi)存硬件設(shè)備

2020-05-21 15:54:36

5G網(wǎng)絡(luò)無人機(jī)

2022-01-24 14:42:03

手機(jī)技術(shù)廠商

2021-12-21 23:16:35

iOS蘋果系統(tǒng)

2020-10-10 17:33:09

硬盤商家顆粒

2019-05-27 15:30:44

Node.jsJavaScript前端

2014-12-04 12:51:09

2019-11-13 22:31:23

智能會議平板

2023-06-30 07:15:40

顯示器高度角度

2016-07-21 11:38:42

云計算

2018-02-10 09:36:16

物聯(lián)網(wǎng) 邊緣計算OEM

2021-12-03 11:05:24

人工智能AI智能交通

2012-05-02 15:56:20

PHP

2020-07-07 08:51:52

編程語言C語言Java

2024-11-18 15:57:49

2021-12-16 15:53:14

遠(yuǎn)程辦公網(wǎng)絡(luò)攻擊勒索軟件

2017-10-30 14:51:44

APP網(wǎng)頁窗口

2020-10-12 16:43:48

無人機(jī)互聯(lián)網(wǎng)技術(shù)
點贊
收藏

51CTO技術(shù)棧公眾號