
本文详解 Express 应用中 POST 请求接收空对象 {} 或返回 400 错误的根本原因,涵盖中间件配置、路由注册、请求头设置及数据验证等关键环节,并提供可直接运行的修复代码。
本文详解 express 应用中 post 请求接收空对象 `{}` 或返回 400 错误的根本原因,涵盖中间件配置、路由注册、请求头设置及数据验证等关键环节,并提供可直接运行的修复代码。
在 Express 中,POST 请求体(req.body)为空(即 {})是初学者最常见的痛点之一。这并非 Express 本身缺陷,而是请求处理链路中某个环节缺失或错配所致。结合你提供的代码,问题核心在于:缺少解析请求体的中间件、路由未正确挂载、以及服务端缺乏对无效输入的基本防护。
✅ 正确配置请求体解析中间件
Express 默认不自动解析请求体(无论 application/json 还是 application/x-www-form-urlencoded)。你虽调用了 routerStories.use(express.json()),但这仅作用于该 Router 实例下的子路由,且必须在定义路由之前执行;更重要的是——它只处理 Content-Type: application/json 请求,对表单提交(如 HTML









