iT邦幫忙

2025 iThome 鐵人賽

DAY 12
0
自我挑戰組

《轉職學習日記:JavaScript × Node.js × TypeScript × Docker × AWS ECS》系列 第 12

Day12 - 持續成長學習藍圖 - Node.js(Express入門 – 路由與 Middleware)

  • 分享至 

  • xImage
  •  

昨天用 Node.js 內建的 http 模組,寫了一個小伺服器。
雖然能跑,但光是要處理 //about 這兩個路由就已經有點亂了。
今天要進階學習 Express —— 一個讓伺服器更好寫的框架。


Express 是什麼?

Express 是一個基於 Node.js 的框架,用來建立 Web 伺服器。
它的特色是:

  • 簡單:寫法比原生 http 模組直觀
  • 強大:支援 Middleware(中介層)、路由系統
  • 生態系豐富:很多第三方套件都能直接搭配

安裝 Express

在專案資料夾底下:

npm init -y
npm install express

建立第一個 Express 伺服器

app.js

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(中介層)

Middleware 可以想像是「過濾器」,請求要進入路由前會先經過這些處理。
例如:記錄每個請求的時間。

app.use((req, res, next) => {
  console.log(`收到請求:${req.method} ${req.url} at ${new Date().toISOString()}`);
  next(); // 繼續往下走
});

app.get("/", (req, res) => {
  res.send("首頁");
});

有了 Middleware,就能統一處理很多事:

  • 紀錄 Log
  • 檢查身分驗證
  • 處理錯誤

實作練習

今天我做了兩件事:

  1. 用 Express 重寫昨天的伺服器,建立 //about 路由。
  2. 寫了一個 Middleware,會在每次請求時印出 log。

這樣比昨天的程式碼清楚很多!


🎯 學習心得 / 今日收穫

Express 的第一印象就是「比 Node.js 原生好寫太多了」。
以前要用 if (req.url === "/") 來判斷,現在直接 app.get("/about", ...) 就搞定。

而 Middleware 的概念也讓我覺得很實用,可以把共用邏輯抽出來,程式碼更乾淨。


上一篇
Day11 - 持續成長學習藍圖 - Node.js(建立第一個伺服器)
下一篇
Day13 - 持續成長學習藍圖 - Node.js(REST API CRUD 設計 I)
系列文
《轉職學習日記:JavaScript × Node.js × TypeScript × Docker × AWS ECS》16
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言