NodeJS接收FormData请求可获取req.body但无法访问对应字段
问题根源
你前端构造FormData时,append方法的第一个参数(键名)末尾多打了多余空格:
formData.append("title ", values.title)这里实际存储的键是title(末尾带空格),不是titleformData.append("message ", values.message)这里实际存储的键是message(末尾带空格),不是message- 同理
selected、scheduledDate、users几个键都存在末尾多余空格的问题
你调试时看到的payload里的键实际是带空格的,你访问payload.message自然返回undefined,只有写payload['message ']才能读到值。Postman发送请求正常,是因为你在Postman里填写的键名没有带多余空格,和服务端取值的键名完全匹配。
解决方案
把所有FormData键名末尾的空格删掉即可,修正后的代码如下:
const formData = new FormData(); formData.append("title", values.title); formData.append("message", values.message); if (values.image) { formData.append("image", values.image, values.image.name); } if (values.selected && values.selected.length > 0) { formData.append("selected", values.selected); } if (newDate) { formData.append("scheduledDate", newDate); } if (users && users.length > 0) { formData.append("users", users); }
内容的提问来源于stack exchange,提问作者SDB_1998
相关产品推荐
相关产品推荐

