正文"/>
multer 从传入请求中删除正文
我从一个简单的 Angular 应用程序以
FormData
的形式发送一个 http 发布请求,将内容类型设置为 multipart/form-data
,后端接收传入的请求并使用 multer 解析它
multer解析请求后总是发现
req.body
为null
这里是最小复制
重现步骤
- 安装依赖项
npm install
- 从后端目录运行后端部分
npm start
- 从前端目录运行前端部分
npm start
- 在
打开浏览器,它会直接向后台发送HTTP请求,无需填写任何表单,收到的响应显示在同一页面上。localhost:4200
这里的问题是它显示
{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;
}
更多推荐
multer 从传入请求中删除正文
发布评论