Node.js Express.js:快速構建 Web 應用的極簡框架
在先前的章節中,我們學會了如何使用原生的 http 模組建立伺服器。雖然這能深入了解底層,但在實際專案開發中,為了提升效率與可維護性,我們需要更強調擴展性的方案。這就是 Express.js 成為 Node.js 生態系絕對霸主的原因。
為什麼選擇 Express.js?
Express 的核心哲學是 「極簡且不預設立場 (Minimalist and Unopinionated)」。
- 極致輕量:它在原生 Node.js 之上僅添加了一層開發網頁應用必備的功能,不會讓你的程式變得臃腫。
- 強大的路由系統:輕鬆定義
GET,POST,PUT,DELETE等請求路徑。 - 中間件 (Middleware) 機制:像堆積木一樣,自由組合日誌、權限驗證、請求解析等功能。
- 工業標準:絕大多數的 Node.js 工作職缺都要求具備 Express 開發經驗。
建立專案與安裝
首先,建立專案資料夾並初始化環境。
mkdir hello-express
cd hello-express
npm init -y
接著透過 NPM 安裝 Express:
npm install express
撰寫第一個 Express 程式
建立一個 app.js 檔案,輸入以下程式碼:
const express = require('express');
const app = express();
const port = 3000;
// 定義首頁路由 (GET 請求)
app.get('/', (req, res) => {
// res.send 會自動幫你設定 Content-Type 與 Charset
res.send('你好!歡迎來到 Express 的世界。');
});
// 定義 API 路由
app.get('/api/user', (req, res) => {
// res.json 會自動進行序列化並傳送 JSON 格式
res.json({
id: 1,
name: 'Mike',
status: 'Learning Express',
});
});
app.listen(port, () => {
console.log(`伺服器正運行在 http://localhost:${port}`);
});
執行方式:node app.js。
Express 的核心進化
如果你用過原生 http 模組,你會立刻感受到 Express 的便捷處:
- 路由簡化:告別繁瑣的
if (req.url === ...)分支判斷。 - 自動化回應:以前要手動計算
Content-Length並JSON.stringify,現在一個res.json()或res.send()搞定一切。 - 狀態碼管理:
res.status(404).send('Not Found')鏈式呼叫非常直覺。
開發工具推薦:Nodemon 或 --watch
開發時,每次修改檔案都要重啟伺服器很累人。
- 熱門工具 Nodemon:
npm install --save-dev nodemon,接著在package.json加入"dev": "nodemon app.js"。 - 原生監控 (Node 18.11+):現在 Node.js 內建了監控模式,直接執行:
node --watch app.js
總結
- Express 是目前 Node.js Web 開發的實質標準。
- 它將複雜的 HTTP 解析流程封裝成簡單、好讀的 API。
- 它是理解所有 Node.js 進階框架(如 NestJS)的必經之路。