Node.js生態系教學手冊
Node.js 生態系教學手冊 版本:2026.06 適用對象:具備基礎程式能力,準備參與 Web Application 或 Backend API 專案開發的工程師 定位:實務導向、架構導向、企業導向的內部技術文件 Node.js 版本基準:v26.1.0 LTS 最後更新:2026 年 6 月 目錄 第 1 章:Node.js 簡介 1.1 Node.js 是什麼 1.2 Runtime 架構與 V8 Engine 1.3 Event Loop 運作機制 1.4 Non-blocking I/O 模型 1.5 Node.js 適用場景與不適用場景 1.6 Node.js LTS 與 Current 版本策略 第 2 章:Node.js 生態系 2.1 npm 2.2 yarn 2.3 pnpm 2.4 npx 與 corepack 2.5 package.json 完整解析 2.6 package-lock.json 與依賴鎖定 2.7 Semantic Versioning(語意化版本) 第 3 章:Node.js 安裝與環境建立 3.1 Windows 環境安裝 3.2 Linux 環境安裝 3.3 macOS 環境安裝 3.4 nvm — Node Version Manager 3.5 fnm — Fast Node Manager 3.6 Volta — 可靠的 JavaScript 工具管理器 3.7 企業環境設定與內部 Registry 第 4 章:TypeScript 開發平台 4.1 為什麼企業專案必須使用 TypeScript 4.2 tsconfig.json 設計原則 4.3 ESM 與 CommonJS 互操作性 4.4 ts-node 與 tsx 開發工具 4.5 SWC 與 esbuild 高速編譯器 4.6 Node.js v26 原生 TypeScript 支援 4.7 型別設計與 Domain Model 最佳實務 第 5 章:Node.js 核心 API 5.1 fs(檔案系統) 5.2 path(路徑處理) 5.3 os(作業系統資訊) 5.4 process(程序管理) 5.5 buffer(二進位資料處理) 5.6 stream(串流處理) 5.7 crypto(加密與雜湊) 5.8 http / https(HTTP 伺服器與客戶端) 5.9 events(事件發射器) 5.10 timers(計時器) 5.11 worker_threads(工作執行緒) 5.12 cluster(叢集) 5.13 child_process(子程序) 5.14 diagnostics_channel(診斷通道) 5.15 新興 API:SQLite、FFI、Permissions 第 6 章:非同步程式設計 6.1 Callback 模式 6.2 Promise 與 Promise 組合器 6.3 async / await 最佳實務 6.4 Event Loop 深入解析 6.5 Microtask Queue 與 Macrotask Queue 6.6 並行控制與流量管控 第 7 章:Express 教學 7.1 建立 REST API 7.2 Middleware 機制 7.3 Routing 設計 7.4 Error Handling 7.5 JWT 身分驗證 7.6 Request Validation 7.7 File Upload 7.8 Express 效能最佳化 7.9 Express 安全強化 7.10 Express 與 Graceful Shutdown 第 8 章:Fastify 教學 8.1 高效能 API 建構 8.2 Plugin 架構 8.3 Schema Validation 與序列化 8.4 效能比較與調校 8.5 TypeBox Schema 驗證 8.6 Fastify Hooks 生命週期 8.7 Fastify 封裝性與裝飾器 8.8 Fastify Rate Limiting 與安全 8.9 Fastify 錯誤處理 第 9 章:NestJS 教學 9.1 Module 模組設計 9.2 Controller 控制器 9.3 Provider 與 Service 9.4 Dependency Injection 依賴注入 9.5 Guard 守衛 9.6 Interceptor 攔截器 9.7 Pipe 管道 9.8 CQRS 模式 9.9 NestJS 微服務模式 9.10 NestJS 排程任務 第 10 章:API 設計最佳實務 10.1 RESTful API 設計原則 10.2 OpenAPI / Swagger 文件化 10.3 API Versioning 策略 10.4 統一錯誤碼設計 10.5 Idempotency 冪等性設計 10.6 Pagination 分頁設計 10.7 GraphQL 簡介與對比 10.8 WebSocket 即時通訊 API 10.9 API 錯誤碼體系設計 10.10 API 限流與配額設計 第 11 章:資料庫整合 11.1 PostgreSQL 整合 11.2 MySQL 整合 11.3 MongoDB 整合 11.4 Redis 快取整合 11.5 Prisma ORM 11.6 TypeORM 11.7 Transaction、Migration 與連線池 11.8 Prisma 進階查詢模式 11.9 Redis 進階模式 第 12 章:測試 12.1 Node.js 內建 Test Runner(node:test) 12.2 Jest 測試框架 12.3 Vitest 測試框架 12.4 Supertest 整合測試 12.5 Playwright E2E 測試 12.6 Test Pyramid 與測試策略 12.7 Mock / Stub / Spy 使用時機 12.8 Coverage 工具(c8 / istanbul) 12.9 Contract Testing(契約測試) 12.10 測試資料管理 12.11 Snapshot Testing 第 13 章:專案架構設計 13.1 Clean Architecture 應用 13.2 Hexagonal Architecture 應用 13.3 Domain-Driven Design(DDD)實作 13.4 Monorepo 策略(Turborepo / Nx / pnpm workspace) 13.5 微服務架構設計 13.6 Error Handling 架構 13.7 Configuration Management 第 14 章:前端整合 14.1 Vue 整合模式 14.2 React 整合模式 14.3 Next.js 全端框架 14.4 Nuxt.js 全端框架 14.5 Server-Side Rendering(SSR)架構 14.6 BFF(Backend for Frontend)設計模式 14.7 Server-Sent Events(SSE)即時推送 14.8 Micro-Frontend 整合模式 14.9 API 狀態管理(TanStack Query) 第 15 章:Docker 化 15.1 Node.js Dockerfile 撰寫 15.2 Multi-stage Build 15.3 Docker Compose 開發環境 15.4 容器安全最佳實務 15.5 Docker Compose 完整開發環境 15.6 生產環境 Docker 最佳實務 第 16 章:Kubernetes 部署 16.1 Deployment 設定 16.2 Service 與 Ingress 16.3 ConfigMap 與 Secret 16.4 HPA 自動擴縮 16.5 Health Check 與 Readiness Probe 16.6 Helm Chart 管理 16.7 Namespace 與資源隔離策略 第 17 章:CI/CD 17.1 GitHub Actions 完整範例 17.2 GitLab CI 配置 17.3 Jenkins Pipeline 17.4 Build → Test → Security Scan → Docker Build → Deploy 流程 17.5 Semantic Versioning 自動化 17.6 Commit 規範與自動化 第 18 章:Logging 與 Monitoring 18.1 Winston 日誌框架 18.2 Pino 高效能日誌 18.3 OpenTelemetry 可觀測性 18.4 Prometheus 指標收集 18.5 Grafana 視覺化監控 18.6 分散式追蹤(OpenTelemetry) 18.7 ELK Stack 日誌架構 18.8 告警策略設計 第 19 章:Node.js 效能調校 19.1 Event Loop Lag 監控 19.2 Memory Leak 偵測 19.3 Heap Snapshot 分析 19.4 CPU Profile 分析 19.5 Benchmark 工具 19.6 效能最佳化清單 19.7 V8 引擎最佳化技巧 19.8 Worker Threads 平行運算 19.9 Stream 效能最佳化 19.10 JSON 序列化加速 第 20 章:安全性(SSDLC) 20.1 OWASP Top 10 for Node.js 20.2 npm 供應鏈攻擊防護 20.3 依賴掃描與 SAST/DAST 20.4 Secret 管理 20.5 JWT 安全最佳實務 20.6 Helmet、CORS 與 Rate Limiting 20.7 輸入驗證與 Injection 防護 20.8 SSRF 防護 20.9 密碼安全與雜湊 20.10 Content Security Policy(CSP) 20.11 安全 HTTP Headers 完整清單 第 21 章:AI 協作開發 21.1 GitHub Copilot 21.2 Claude Code 21.3 其他 AI 工具整合 21.4 Prompt Engineering for Coding 21.5 AI 輔助 Code Review 21.6 AI 輔助測試產生 21.7 AI 輔助文件產生 21.8 CLAUDE.md 專案規範範例 第 22 章:Node.js 維運 22.1 PM2 程序管理 22.2 Cluster 模式 22.3 部署策略 22.4 Graceful Shutdown 22.5 維運監控 Checklist 22.6 Node.js 生產環境設定 22.7 日誌輪替與管理 22.8 健康檢查與自我修復 第 23 章:企業級最佳實務 23.1 Coding Standard 與 Lint 23.2 Conventional Commits 23.3 Git Flow 與分支策略 23.4 Release 與版本策略 23.5 Code Review 流程 23.6 API 版本管理策略 23.7 Feature Flag 管理 23.8 國際化(i18n) 第 24 章:完整企業級範例專案 24.1 專案概覽 24.2 NestJS API 核心 24.3 認證模組 24.4 Prisma Schema 24.5 Redis 快取與 BullMQ 工作佇列 24.6 Docker Compose(完整開發環境) 24.7 GitHub Actions CI/CD 24.8 監控與 Logging 整合 24.9 Order Module 完整實作 24.10 完整測試範例 第 25 章:Appendix 25.1 CLI 常用指令速查表 25.2 Debug 技巧 25.3 VS Code 推薦設定 25.4 推薦套件與學習資源 附錄:檢查清單(Checklist) A. 新專案啟動檢查清單 B. Code Review 檢查清單 C. 上線前檢查清單 D. 日常維運檢查清單 E. 安全性檢查清單 第 1 章:Node.js 簡介 1.1 Node.js 是什麼 定義 Node.js 是一個基於 Chrome V8 引擎 的 JavaScript 執行環境(Runtime),讓 JavaScript 能夠脫離瀏覽器在伺服器端執行。它採用 事件驅動(Event-driven) 與 非阻塞 I/O(Non-blocking I/O) 模型,特別適合建構高併發、I/O 密集型的網路應用程式。 ...