[Lv2] Nuxt 3 Server 功能實作:Server Routes 與動態 Sitemap
掌握 Nuxt 3 的 Nitro Server Engine 功能,實作 Server Routes (API Routes)、動態 Sitemap 與 Robots.txt,提升網站的 SEO 與架構彈性。
1. 面試回答主軸
- Server Routes (API Routes):使用
server/api或server/routes建立後端邏輯。常用於隱藏 API Key、處理 CORS、BFF (Backend for Frontend) 架構。 - 動態 Sitemap:透過 Server Routes (
server/routes/sitemap.xml.ts) 動態生成 XML,確保搜尋引擎能索引最新內容。 - Robots.txt:同樣透過 Server Routes 動態生成,或使用 Nuxt Config 配置,控制爬蟲存取權限。
2. Nuxt 3 Server Engine: Nitro
2.1 什麼是 Nitro?
Nitro 是 Nuxt 3 的全新伺服器引擎,它讓 Nuxt 應用程式可以部署到任何地方(Universal Deployment)。它不僅僅是一個伺服器,更是一個強大的建置與執行時工具。
2.2 Nitro 的核心特色
-
跨平台部署 (Universal Deployment): 可以編譯成 Node.js server、Serverless Functions (Vercel, AWS Lambda, Netlify)、Service Workers 等多種格式。Zero-config 即可 部署到主流平台。
-
輕量且快速 (Lightweight & Fast): Cold start 時間極短,且生成的 bundle size 非常小(最小可達 < 1MB)。
-
自動程式碼分割 (Auto Code Splitting): 自動分析 Server Routes 的相依性,並進行 code splitting,確保啟動速度。
-
HMR (Hot Module Replacement): 不僅前端有 HMR,Nitro 讓後端 API 開發也能享有 HMR,修改
server/檔案無需重啟伺服器。 -
Storage Layer (Unstorage): 內建統一的 Storage API,可以輕鬆連接 Redis, GitHub, FS, Memory 等不同儲存介面。
-
Server Assets: 可以方便地在 Server 端存取靜態資源檔案。
3. Nuxt 3 Server Routes (API Routes)
3.1 什麼是 Server Routes?
Nuxt 3 內建了 Nitro 伺服器引擎,允許開發者直接在專案中編寫後端 API。這些檔案放在 server/api 或 server/routes 目錄下,會自動映射為 API endpoint。
server/api/hello.ts->/api/helloserver/routes/hello.ts->/hello