我从一个简单的 Angular 应用程序以
FormData
的形式发送一个 http 发布请求,将内容类型设置为 multipart/form-data
,后端接收传入的请求并使用 multer 解析它
multer解析请求后总是发现
req.body
为null
这里是最小复制
npm install
npm start
npm start
localhost:4200
打开浏览器,它会直接向后台发送HTTP请求,无需填写任何表单,收到的响应显示在同一页面上。这里的问题是它显示
{body:null,..}
它应该是{body: {content: "test"}}
toFormData
方法,它构造了不正确的formData
,这就是为什么它在服务器上没有被解析/为空。
两种修复方法:
payload
更改为对象,而不是数组:payload = { content: 'test' };
payload
用作数组,您需要使用 for..of
循环而不是 for..in
来迭代数据数组,然后对于每个对象,您应该动态附加键/值,这可以通过循环对象方便地完成键,然后使用 formData
.将键值对附加到
.reduce
尝试用这个替换它:
export function toFormData(data: any): FormData {
let formData = new FormData();
for (let element of data) {
Object.keys(el).reduce((formData:FormData, key:string) => {
formData.append(key, element[key]);
return formData;
}, formData);
}
return formData;
}