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

React通过axios向Express传数据时req.body为undefined如何解决

问题解答

关于是否可以直接发送object类型数据

可以直接发送。axios默认会将传入data字段的object自动序列化为JSON字符串,同时自动为请求添加Content-Type: application/json请求头,属于符合HTTP规范的请求格式,Express完全支持接收这类数据。

出现req.body为undefined的核心原因

Express默认不会自动解析请求体中的JSON格式数据,必须手动启用对应的解析中间件后才能从req.body拿到前端传递的内容。

修复方案

  1. 确认你使用的Express版本≥v4.16.0(目前绝大多数项目使用的版本都满足该要求),在Express入口文件的路由定义代码之前,添加JSON解析中间件:
// 放在所有app.post/app.get等路由定义的前面
app.use(express.json())
  1. 如果你使用的是低于4.16.0的旧版本Express,先安装body-parser依赖:
npm install body-parser

再在入口文件中引入并注册中间件:

const bodyParser = require('body-parser')
app.use(bodyParser.json())

其他可能的排查点

如果添加中间件后问题仍然存在,可按以下顺序排查:

  • 确认中间件注册的顺序在路由定义之前,顺序错误会导致解析失效
  • 检查前端axios配置有没有手动覆盖Content-Type请求头,确保该值为application/json
  • 打印前端的selectedFile.filePaths,确认发送的值不是undefined或null

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 17:15:06