NodeJS, Express 重點整理

介紹及特點整理

Jacy Chu
Mar 18, 2024

Node.js介紹

Node.js 是一個基於 Chrome V8 JavaScript 引擎的運行環境,它允許你用 JavaScript 在伺服器端(瀏覽器外)執行代碼。所以該環境捨棄了瀏覽器限定的 JavaScript APIs 並增加更多傳統 OS APIs 的支援。

🔖 補充

瀏覽器限定的 JavaScript APIs:僅在瀏覽器環境中可用的應用程式介面。這些 API 提供了許多功能,使開發者能夠與瀏覽器進行交互,創建動態且交互式的網頁應用程式。常見的瀏覽器限定的 JavaScript APIs 包括:

  1. DOM API:通過 DOM API,開發者可以動態地創建、修改或刪除網頁中的元素,從而實現動態內容。
  2. 事件 API:事件 API 允許 JavaScript 代碼監聽和響應用戶的操作,例如鼠標點擊、鍵盤輸入、網頁加載等。
  3. Fetch API:Fetch API 是一種用於網絡請求的現代 API,用於發送和接收數據。
  4. Canvas API:Canvas API 允許開發者使用 JavaScript 在網頁上繪製圖形和動畫。
  5. Web Storage API:允許開發者在客戶端存儲和檢索數據,以保持用戶數據的狀態。

🔖 補充

作業系統(OS)APIs 是一組用於與作業系統進行交互的應用程式介面。這些介面允許開發者在應用程式中訪問和利用作業系統的底層功能,以執行各種任務,例如文件系統操作、網路通信、進程管理等。常見的作業系統 API:

  1. 文件系統 API:作業系統提供了一組 API,用於在應用程式中執行文件和目錄操作,例如創建、打開、讀取、寫入、刪除文件等。這些 API 允許開發者直接與文件系統進行交互,管理應用程式所需的數據。
  2. 進程管理 API:作業系統允許應用程式控制進程的創建、銷毀、調度和通信。這包括創建新進程、等待進程終止、發送信號等功能。
  3. 網路通信 API:作業系統提供了一組 API,用於在應用程式中進行網路通信,包括創建和管理網路連接、發送和接收數據等。
  4. 內存管理 API:作業系統允許應用程式管理系統內存的分配和釋放。這包括動態內存分配、內存映射、虛擬內存管理等功能。
  5. 設備訪問 API:作業系統提供了訪問硬件設備(例如磁盤驅動器、打印機、攝像頭等)的 API,允許應用程式與硬件設備進行通信和控制。
  6. 用戶界面 API:作業系統提供了一組 API,用於創建和管理圖形用戶界面(GUI)應用程式。這些 API 包括窗口管理、事件處理、圖形繪製等功能。
  7. 安全和權限 API:作業系統提供了一些 API,用於管理應用程式的安全性和權限,包括身份驗證、權限管理、加密解密等功能。

Node.js 的一些特點:

  1. 非阻塞 I/O:Node.js 使用非阻塞的事件驅動模型,這意味著它能夠高效地處理大量的並發請求,而不會阻塞進程。
  2. 模組化:Node.js 採用了模組化的設計,這使得代碼更易於維護和重用。你可以使用 npm(Node Package Manager)輕鬆安裝、管理和共享模組。
  3. 快速:Node.js 的底層使用了 V8 引擎,這使得它具有出色的性能和執行速度。
  4. 龐大的生態系統:Node.js 擁有龐大而活躍的生態系統,你可以在社區中找到大量的模組和工具,從而加速開發過程。

Express介紹

Express 是一個建構在 Node.js 上的 Web 應用程式框架,它提供了一組強大而靈活的功能,能夠幫助開發者快速建立可靠且高效的 Web 應用程式和 API。以下是 Express 框架的一些主要特色:

  1. 中介軟體 (middleware):Express 使用中介軟體來處理 HTTP 請求。這使得在請求到達路由處理之前或之後執行特定操作變得非常簡單,例如身份驗證、日誌記錄、錯誤處理等。中介軟體可以串連在一起,形成一個處理請求的管道。
  2. 路由:Express 提供了簡單而強大的路由機制,允許開發者定義應用程式如何回應特定 URL 或 URL 模式的請求。這使得管理不同端點和處理請求變得非常簡單。
  3. 模板引擎:雖然 Express 本身不強制要求使用特定的模板引擎,但它可以與眾多流行的模板引擎(如 EJS、Pug 等)無縫集成。這使得開發者可以在伺服器端生成動態的 HTML 內容,以呈現數據到客戶端。
  4. 靜態文件服務:Express 可以輕鬆地為靜態文件(如圖像、CSS 和 JavaScript 文件)提供服務,而無需額外配置。
  5. 模組化:Express 的設計鼓勵模組化開發,這意味著開發者可以將應用程式拆分為多個文件和目錄,以便更好地組織和管理代碼。這使得開發大型應用程式變得更加可管理和可維護。

--

--