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

Express+body-parser+Postman:POST请求体解析失败求助

POST请求体为空的排查与解决

使用Express 4.18.2和body-parser 1.20.1时,POST接口/transaction的req.body始终为空,可按以下步骤排查解决:

排查步骤

  • 检查请求头Content-Type
    body-parser.json()中间件仅解析Content-Type为application/json的请求。如果请求未设置该头,中间件不会处理请求体,导致req.body为空。在请求工具(如Postman)中,务必添加请求头:Content-Type: application/json。

  • 验证请求体JSON格式
    若请求体JSON存在语法错误(如引号不闭合、多余逗号等),body-parser无法解析,req.body也会为空。确保请求体是合法JSON,示例:

    {
      "amount": 100,
      "sender": "userA",
      "recipient": "userB"
    }
    
  • 确认中间件挂载顺序
    你的代码已正确挂载app.use(bodyParser.json());,且该中间件在所有路由之前,这一步无需调整。

  • 可选:使用Express内置解析器
    Express 4.16.0+内置了body-parser功能,可替换掉单独安装的body-parser,直接使用:

    app.use(express.json());
    

    功能与bodyParser.json()一致,可避免版本兼容问题。


你的代码:

const express = require("express");
const bodyParser = require("body-parser");

const app = express();

app.use(bodyParser.json());

app.get("/blockchain", function (req, res) {});

app.post("/transaction", function (req, res) {
  console.log(req.body);
  console.log(req.body.amount);
  res.sendStatus(200);
});

app.get("/mine", function (req, res) {});

app.listen(3000, function () {
  console.log("Listening on port 3000...");
});

请求截图:

截图内容

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 18:15:37