Node.js 就是讓 JavaScript 跑在瀏覽器之外的執行環境。
在傳統前端開發裡,JavaScript 的角色大多侷限於處理瀏覽器上的互動,例如:
不過,自從有了 Node.js,JavaScript 的應用範圍被大大擴展,
不再只是「瀏覽器語言」,而是能勝任各種後端工作,包括:
🌐 瀏覽器環境 (Before)
┌────────────────────────────┐
│ JavaScript 能做的事: │
│ - 改變畫面 (DOM) │
│ - 監聽按鈕點擊 │
│ - 呼叫 API 拿資料 │
└────────────────────────────┘
│
▼
🚀 Node.js (After)
┌────────────────────────────┐
│ JavaScript 還能做更多: │
│ - 建立伺服器 │
│ - 存取檔案系統 │
│ - 連接資料庫 │
│ - 撰寫 API / 後端應用 │
└────────────────────────────┘
換句話說,JavaScript 不再只是「網頁語言」,它也能像 Python、Java、C# 一樣,成為後端的主力工具。
Node.js 的底層核心是 Google Chrome 的 V8 JavaScript 引擎。
這個引擎會把 JavaScript 直接編譯成機器碼來執行(而不是解釋執行),因此效能非常快。
這也是為什麼許多效能要求高的服務(像 Netflix、LinkedIn)會選擇 Node.js。
Node.js 採用 單執行緒 (Single Thread),但這不代表它一次只能處理一個任務。
它搭配 非阻塞 I/O (Non-blocking I/O) 與 事件迴圈 (Event Loop):
這種設計讓 Node.js 能夠處理 成千上萬個連線,特別適合聊天室、即時推播、API 伺服器等應用。
Node.js 附帶的 npm(Node Package Manager) 擁有數十萬個套件,
無論是 資料庫、測試工具、伺服器框架,幾乎「想得到就找得到」,讓開發效率大幅提升。
1. 高效能非阻塞 I/O
Node.js 採用事件驅動、非阻塞 I/O 模型,特別適合處理大量併發連接,在 I/O 密集型應用中表現優異。
2. JavaScript 全端開發
前後端都使用 JavaScript,降低學習成本,團隊可以共享程式碼和技能,提高開發效率。
3. 豐富的生態系統
NPM (Node Package Manager) 擁有龐大的套件庫,開發者可以輕鬆找到各種功能模組,加速開發流程。
4. 快速開發週期
輕量級架構和豐富的工具鏈,讓開發者能快速建立原型和部署應用程式。
5. 活躍的社群支持
擁有龐大的開發者社群,提供豐富的學習資源、教學文件和技術支援。
1. 單執行緒限制
雖然適合 I/O 密集型任務,但在 CPU 密集型計算上可能成為瓶頸,容易阻塞整個應用程式。
2. 快速變化的生態系統
技術和套件更新頻繁,可能造成相容性問題,增加維護成本。
3. 記憶體消耗
相較於一些編譯型語言,Node.js 應用程式可能消耗較多記憶體。
4. 非同步程式設計複雜性
回呼函數和非同步程式設計模式可能導致「回呼地獄」,增加程式碼複雜度和除錯難度。
5. 不適合計算應用
對於需要大量數值計算或資料處理的應用,Node.js 的效能可能不如專門設計的語言和平台。
Node.js 的出現,讓前端工程師不只把 JavaScript 侷限於瀏覽器,而是能跨足後端開發。
而Node.js它的核心優勢來自於 V8 引擎帶來的高效能、單執行緒 + 非阻塞 I/O 支撐的高併發能力,以及 龐大的 npm 生態系。這些特點讓 Node.js 特別適合 API 伺服器、即時聊天室系統等開發。
接下來的系列文章裡,會逐步探索 Node.js 的核心功能與常用模組,帶你從基礎打底,一步步掌握Node.js。
參考資料: