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

Express POST接口调用时Postman报req.body() is not a function如何解决

问题原因
  • 在Express框架中,req.body是用来存放解析后POST请求参数的内置属性,它不是可调用的函数,添加括号调用就会触发req.body() is not a function报错。
  • 使用req.body前必须提前配置Express的请求体解析中间件,否则req.body会返回undefined,同样无法正常拿到请求参数。
修复方案
  1. 先在所有路由定义前配置请求体解析中间件,Express 4.16.0及以上版本已内置相关中间件,无需单独安装body-parser:
// 解析JSON格式请求体
app.use(express.json())
// 解析表单格式请求体
app.use(express.urlencoded({ extended: true }))
  1. 修改原有接口代码,移除req.body后的调用括号即可,同时建议给错误响应添加对应的HTTP状态码,方便前端识别请求结果:
app.post('/data', (req, res) => {
const body = req.body;
Data.save(body)
.then(response => {
  console.log('saved to mongo db', response);
  res.json(response);
})
.catch(error => {
  console.log('error in saving to mongo db', error);
  res.status(500).json(error);
});
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 23:36:05