使用Thunder Client发送POST请求时express中req.body返回undefined如何解决
解决方案:Express服务获取req.body返回undefined
核心原因
你没有在Express主应用入口文件中,在注册路由之前挂载JSON请求体解析中间件,Express默认不会自动解析application/json格式的请求体。
修复步骤
- 打开你的Express主文件(通常命名为
app.js或index.js) - 在注册路由的代码前,添加
express.json()中间件挂载逻辑,示例如下:
const express = require('express') const adminRouter = require('./routes/admin') // 替换为你自己的路由文件路径 const app = express() // 必须放在路由注册之前,才能对后续路由生效 app.use(express.json()) // 注册你的路由 app.use('/api', adminRouter) app.listen(3000, () => { console.log('服务已启动') })
其他异常场景排查
- 确认Thunder Client的请求体栏目选择的是JSON格式,而非Form、Text等其他类型
- 检查你填写的请求体内容是合法JSON,不存在引号不配对、漏逗号等语法错误
- 如果你使用的Express版本低于4.16.0,需要单独安装
body-parser依赖:
执行安装命令:npm install body-parser
然后在主文件中引入配置:const bodyParser = require('body-parser') app.use(bodyParser.json())
内容的提问来源于stack exchange,提问作者adil135
相关产品推荐
相关产品推荐

