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}`);
});