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

Express DELETE路由接收Postman请求时req.body为空的问题求助

解决Express中DELETE请求req.body为空的问题

看起来你遇到的核心问题是DELETE请求的body没有被Express正确解析,虽然你的app.js里已经配置了express.json()和express.urlencoded(),但问题大概率出在Postman的请求配置上,下面是具体的排查和解决步骤:

1. 检查Postman的请求设置

很多人会忽略,DELETE请求在Postman里发送body时,需要正确配置格式:

  • 确保请求方法选择的是DELETE
  • 切换到Body标签页,选择raw选项,然后在右侧的格式下拉框中选择JSON
  • 在输入框中填写正确的JSON格式数据,比如:
    {"postId": "你的帖子ID"}
    
  • 最后检查Headers标签页,确认存在Content-Type: application/json这个头(如果选了raw JSON,Postman通常会自动添加,但有时候可能失效,手动加上更稳妥)

2. 验证Express的解析配置

你的app.js里已经正确添加了解析中间件:

app.use(express.json());
app.use(express.urlencoded({ extended: false }));

这部分是没问题的,Express会自动解析Content-Type: application/json的请求body,所以只要Postman的请求格式正确,req.body就能拿到数据。

额外注意事项

等你解决了req.body的问题后,还有个MongoDB的小坑要注意:你的_id如果是MongoDB自动生成的ObjectId类型,直接用字符串的postId去匹配是找不到文档的,需要转换成ObjectId:

const { ObjectId } = require('mongodb');
// ...
postsCollection.findOneAndDelete({"_id": ObjectId(postId)})

按照上面的步骤调整Postman的请求配置后,你应该就能正常拿到req.body里的postId了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 14:32:43