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

TypeScript项目POST新增用户时报Cannot read property 'userid' of undefined错误

问题原因
  • 报错本质是req.body为undefined,所以尝试从req.body解构userid字段时触发了属性读取错误
  • 根因是Express默认不会自动解析POST请求的JSON格式请求体,你没有注册对应的解析中间件
解决步骤
  1. 找到你的Express服务主入口文件(通常为app.ts/index.ts),在注册路由之前添加JSON解析中间件:
app.use(express.json());

如果有接收表单格式(x-www-form-urlencoded)请求的需求,可以额外添加:

app.use(express.urlencoded({ extended: true }));
  1. 检查Postman请求配置:
  • 请求头的Content-Type字段需设置为application/json
  • Body面板选择raw格式,子格式选JSON,确认你提交的JSON数据语法合法
  1. 确认中间件注册顺序:所有请求解析类中间件必须放在路由注册代码之前,否则请求到达控制器时还未完成请求体解析,req.body仍为undefined
附加说明

如果你使用的是Express 4.16.0之前的旧版本,需要单独安装body-parser包完成解析,配置如下:

npm install body-parser

入口文件引入使用:

import bodyParser from 'body-parser';
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 05:36:04