Express路由无法识别:id参数问题排查与解决
API GET请求参数无法识别问题解决
问题场景
我跟随教程编写的API GET请求处理代码如下:
app.get('api/v1/tours/:id', (req, res) => { console.log(req.params); const id = req.params.id * 1; const tour = tours.find((el) => el.id === id); res.status(200).json({ status: 'Success', results: 1, data: { tour, }, }); });
向localhost:3000/api/v1/tours/5发送GET请求时,:id参数无法被识别,系统将5视为URL的结尾而非参数,导致上述处理器从未触发,控制台无任何日志输出。
解决方案
路由路径缺少前导斜杠,需将路径修改为:
app.get('/api/v1/tours/:id', (req, res) => { // 原逻辑代码不变 });
即使用'/api/v1/tours/:id'替代'api/v1/tours/:id'。
内容的提问来源于stack exchange,提问作者Ecry AMV
相关产品推荐
相关产品推荐

