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

Node.js调用/data接口时req.body返回undefined,求问题排查

问题原因与解决方法

核心问题1:未配置请求体解析中间件

Express框架默认不会自动解析JSON格式的请求体,这是req.body返回undefined的直接原因。你需要在注册所有路由之前,添加JSON解析中间件:

// 在路由代码之前添加
app.use(express.json());

如果你的Express版本低于4.16.0,需要使用body-parser包来实现:

const bodyParser = require('body-parser');
app.use(bodyParser.json());

核心问题2:headers变量声明存在语法错误

你的代码里headers的定义不符合JavaScript语法,const关键字后缺少赋值操作,正确写法如下:

const headers = {
  "Content-type": "application/json"
};

修正后的完整代码示例

const express = require('express');
const app = express();
const axios = require('axios');
const BASE_URL = '你的目标服务地址';

// 先配置JSON解析中间件
app.use(express.json());

app.post("/data", function(req, res) {
  const body = req.body;
  const headers = {
    "Content-type": "application/json"
  };
  axios
    .post(`${BASE_URL}/data`, body, {headers})
    .then((response) => {
      if (response.status === 200) {
        console.log("success", response.data);
        res.send(response.data);
      }
    })
    .catch((e) => {
      console.error(e);
      // 建议补充错误响应,避免客户端长期等待
      res.status(500).send('请求处理失败');
    });
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 08:32:15