昨天用 Node.js 內建的 http
模組,寫了一個小伺服器。
雖然能跑,但光是要處理 /
和 /about
這兩個路由就已經有點亂了。
今天要進階學習 Express —— 一個讓伺服器更好寫的框架。
Express 是一個基於 Node.js 的框架,用來建立 Web 伺服器。
它的特色是:
http
模組直觀在專案資料夾底下:
npm init -y
npm install express
import express from "express";
const app = express();
const port = 3000;
// 路由設定
app.get("/", (req, res) => {
res.send("這是首頁");
});
app.get("/about", (req, res) => {
res.send("這是關於頁面");
});
// 啟動伺服器
app.listen(port, () => {
console.log(`伺服器已啟動:http://localhost:${port}`);
});
啟動:
node app.js
打開 http://localhost:3000
,就會看到「這是首頁」。
Middleware 可以想像是「過濾器」,請求要進入路由前會先經過這些處理。
例如:記錄每個請求的時間。
app.use((req, res, next) => {
console.log(`收到請求:${req.method} ${req.url} at ${new Date().toISOString()}`);
next(); // 繼續往下走
});
app.get("/", (req, res) => {
res.send("首頁");
});
有了 Middleware,就能統一處理很多事:
今天我做了兩件事:
/
和 /about
路由。這樣比昨天的程式碼清楚很多!
Express 的第一印象就是「比 Node.js 原生好寫太多了」。
以前要用 if (req.url === "/")
來判斷,現在直接 app.get("/about", ...)
就搞定。
而 Middleware 的概念也讓我覺得很實用,可以把共用邏輯抽出來,程式碼更乾淨。