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

如何使用Redux向MERN项目后端及MongoDB调度提交表单数据

问题排查与解决方案

最高概率原因:后端未配置JSON请求体解析中间件

Express默认不会自动解析application/json格式的请求体,你提交的数据没有被正确识别,导致req.body为空对象,写入数据库时只有默认字段有值。
修复方式:在后端主入口文件(通常为server.js/app.js)中,路由挂载代码前添加如下配置:

// 解析JSON格式请求体
app.use(express.json())
// 若有表单提交场景可额外添加以下配置
app.use(express.urlencoded({ extended: true }))

次高概率原因:路由绑定错误

检查你的后端路由配置文件(通常存放在routes/目录下),确认POST请求的处理函数和你控制器导出的createLandlords函数完全匹配,示例正确配置如下:

import express from 'express';
import { getLandlords, createLandlords } from '../controllers/landlords.js';
const router = express.Router();

router.get('/', getLandlords);
router.post('/', createLandlords); // 此处函数名必须和控制器导出的名称完全一致

export default router;

验证排查方式

在控制器的createLandlords函数第一行添加日志打印:

export const createLandlords = async (req, res) => {
    console.log('收到的请求体:', req.body) // 新增此行
    const details = req.body;
    // 剩余原有逻辑
}

重启后端服务后提交表单,查看后端控制台输出:

  • 若打印为空对象:优先排查上述两个问题,再核对前端请求的Content-Type是否为application/json(axios默认配置即为该值,无需手动修改)
  • 若打印为包含字段的正常对象:核对你提交的对象key和Schema定义的字段名是否完全一致(大小写敏感)

说明

你当前的Redux调度逻辑是正常的,表单数据能打印说明前端状态收集没问题,问题基本出在后端配置层。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 22:45:06