You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js Express DELETE端点无法获取URL参数问题排查

问题排查:Express DELETE端点无法读取URL参数

你遇到的这个问题其实是个容易忽略的小细节——路由回调函数的参数顺序写反了!

先看你写的DELETE路由代码:

app.delete('/api/courses/:id', (res, req) => { 
  console.log(req.params.id); 
});

在Express的路由回调逻辑里,参数有固定的顺序:第一个参数是请求对象(req),第二个才是响应对象(res)。你这里把res和req的位置搞反了,导致代码里的req实际上是响应对象,而响应对象根本没有params属性,所以才会抛出Cannot read property 'id' of undefined的错误。

而你其他的GET/POST/PUT端点能正常工作,应该是因为那些路由的回调参数顺序是正确的,只有DELETE这里写错了。

修正后的代码

只需要把参数顺序调换过来就行:

app.delete('/api/courses/:id', (req, res) => { 
  console.log(req.params.id); // 现在能正常获取到URL参数id了
  // 别忘了添加响应返回,避免请求挂起:
  res.status(200).send('删除操作已处理');
});

修改之后再用Postman发送DELETE请求到localhost:5000/api/courses/1,就能正常打印出1,也不会再返回错误页面了。

内容的提问来源于stack exchange,提问作者Flimzy_Programmer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 09:06:40