Express中req.body存在字段但访问返回undefined是什么原因?
问题根源
JavaScript 对象的属性名是严格区分大小写、严格匹配字符的,你取不到对应值的核心原因是解构时使用的属性名和 req.body 中实际存在的属性名拼写不匹配,具体存在两处错误:
- 第一处:
req.body中存储表单数据的属性名为formData(字母 D 大写),但你解构时写的是全小写的formdata,二者不匹配导致取值为undefined - 第二处:
req.body中存储配额更新数组的属性名为updatedQuota(前缀是updated带字母 d),但你解构时写的是updateQuota(没有字母 d),字符不匹配导致取值为undefined
修正方案
把解构语句的属性名和实际返回的字段对齐即可:
const { organizationId, formData, updatedItems, updatedQuota } = req.body;
如果你的项目是 TypeScript 开发,建议提前为 req.body 定义明确的类型约束,编译阶段就能自动识别拼写错误,避免运行时才排查出这类问题。
内容的提问来源于stack exchange,提问作者Kid_Learning_C
相关产品推荐
相关产品推荐

