Express 路由使用、請求報文參數獲取、路由參數提取
🛣? 一、Express 路由基本用法
const express = require('express');
const app = express();// 基本 GET 路由
app.get('/', (req, res) => {res.send('Hello GET!');
});// POST 路由
app.post('/submit', (req, res) => {res.send('Hello POST!');
});// 其他方法
app.put('/update', (req, res) => {res.send('PUT 更新');
});app.delete('/delete', (req, res) => {res.send('DELETE 刪除');
});
📦 二、獲取請求報文參數
1. Query 參數(URL 上的 ?name=xxx&age=xx
)
app.get('/search', (req, res) => {const { name, age } = req.query;res.send(`查詢名字:${name},年齡:${age}`);
});
訪問:http://localhost:3000/search?name=Tom&age=18
結果:查詢名字:Tom,年齡:18
2. Body 參數(常用于 POST、PUT)
要先配置中間件:
app.use(express.json()); // 解析 JSON 格式
app.use(express.urlencoded({ extended: true })); // 解析表單(x-www-form-urlencoded)
app.post('/submit', (req, res) => {const { username, password } = req.body;res.send(`用戶名:${username},密碼:${password}`);
});
📌 三、提取路由參數(Path Param)
app.get('/user/:id', (req, res) => {const userId = req.params.id;res.send(`用戶 ID 是:${userId}`);
});
訪問:http://localhost:3000/user/123
結果:用戶 ID 是:123
你也可以定義多個參數:
app.get('/user/:userId/book/:bookId', (req, res) => {const { userId, bookId } = req.params;res.send(`用戶 ${userId} 查看書籍 ${bookId}`);
});
📚 四、整合小示例
const express = require('express');
const app = express();
const port = 3000;// 中間件
app.use(express.json());
app.use(express.urlencoded({ extended: true }));// GET + query
app.get('/search', (req, res) => {res.send(req.query);
});// POST + body
app.post('/submit', (req, res) => {res.send(req.body);
});// 路由參數
app.get('/user/:id', (req, res) => {res.send(req.params);
});app.listen(port, () => {console.log(`Server running at http://localhost:${port}`);
});