Express无法识别POST请求request body返回空对象问题求助
问题根因与修复方案
你提交的POST请求JSON体存在语法错误,键值对之间缺少分隔逗号,非法JSON会被express.json()中间件静默解析为空对象,修正后的请求体格式如下:
{ "name": "fakename", "genre": "agrenera", "director": "afknkeda", "tags": ["adwadw", "wadadwa"] }
如果修正JSON格式后问题仍存在,按以下优先级排查:
- 确认JSON解析中间件注册在路由挂载之前,必须先执行
app.use(express.json()),再执行app.use(你的路由实例),中间件仅对后续注册的路由生效。 - 确认请求头携带
Content-Type: application/json,Postman/RESTClient发送raw格式请求时如果未指定JSON类型,默认请求头为text/plain,不会被express.json()识别解析,可以在请求工具的raw格式选项中手动选择JSON类型,工具会自动添加对应请求头。 - 排查是否存在自定义中间件提前消费了请求流,导致
express.json()无法读取到请求体内容。
内容的提问来源于stack exchange,提问作者William
相关产品推荐
相关产品推荐

