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

React+Express栈中POST请求req.body无法访问的问题

解决Express无法获取POST请求req.body的问题

你的问题核心是Express服务器未配置JSON请求体解析中间件,导致无法解析React发送的JSON格式数据,所以req.body返回undefined。

修复步骤

在你的Express项目入口文件(比如app.js或server.js)中,在定义路由之前添加express.json()中间件:

const express = require('express');
const app = express();

// 关键:添加JSON解析中间件,必须放在所有路由之前
app.use(express.json());

// 之后再定义你的POST路由
app.post("/hello", async function (req, res) {
  let passedInToggleValue = false
  console.log(req.body);
  if (req.body === null || req.body === undefined) {
    console.log("body is empty");
  }
  else if (!req.body.hasOwnProperty('switchBool')) {
    console.log("switchBool is empty");
  }
  else if (req.body.switchBool) {
    passedInToggleValue = true
  }
  const toggleValue = passedInToggleValue ? "on" : "off";
  const resData = `this backend is running and the Testing On/Off Switch is ${toggleValue}`;
  res.send(resData);
});

原因说明

Express框架默认不会自动解析Content-Type: application/json格式的请求体,必须通过express.json()中间件来完成解析工作。只有配置了这个中间件,服务器才能将请求中的JSON数据解析后存入req.body,你的路由才能正常读取到参数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 11:28:06