路由就是:什么车(HTTP 方法)来到什么路口(URL 路径),交给哪个窗口处理。
#1. 最基础的路口定义
app.get('/roads', (req, res) => {
res.send('查看所有主干道');
});
app.post('/roads', (req, res) => {
res.send('新增一条道路');
});
app.put('/roads/1', (req, res) => {
res.send('更新 1 号道路');
});
app.delete('/roads/1', (req, res) => {
res.send('删除 1 号道路');
});可以把它理解成:
同一个路口 /roads
GET = 来查
POST = 来建
PUT = 来改
DELETE = 来拆#2. 路径参数:路牌上的编号
app.get('/roads/:roadId', (req, res) => {
res.json({
roadId: req.params.roadId
});
});访问 /roads/108 时:
req.params // { roadId: '108' }#3. 查询参数:车上带的办事单
app.get('/roads', (req, res) => {
res.json({
district: req.query.district,
status: req.query.status
});
});访问:
/roads?district=east&status=open得到:
req.query // { district: 'east', status: 'open' }#4. 初学者最该掌握的路由规则
路由 = HTTP 方法 + 路径
GET /roads
GET /roads/:roadId
POST /roads
PATCH /roads/:roadId
DELETE /roads/:roadId初学阶段,尽量使用这三种路径形式:
- 固定字符串:
/roads - 参数路径:
/roads/:roadId - 嵌套资源:
/districts/:districtId/roads
不要一开始就沉迷复杂正则路由。老城区先把主干道修直,比修花哨立交桥重要。