首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何处理Miragejs中的FormData?

如何处理Miragejs中的FormData?
EN

Stack Overflow用户
提问于 2022-03-21 07:00:56
回答 1查看 241关注 0票数 0

Miragejs可以开箱即用,但似乎无法处理FormData。当我发布FormData并在海市蜃楼端点中记录接收到的request时,request.requestBody是空的。

简化代码示例:

  • POSTing FormData:
代码语言:javascript
复制
const testFile = new File(['hello'], 'hello.png', { type: 'image/png' });
const formData = new FormData('file', testFile);
fetch('https://localhost:3000/api/endpoint', {method: 'POST', body: formData});
// ...
  • 在海市蜃楼模拟服务器中接收邮件:
代码语言:javascript
复制
this.post('/endpoint', (schema, request) => {
  console.log('request:', request);
  // request.requestBody is an empty string!  
});

可能是一个相关的问题:https://github.com/miragejs/ember-cli-mirage/issues/74

EN

回答 1

Stack Overflow用户

发布于 2022-03-21 07:00:56

可以将request.requestBody转换为FormData,然后解析该文件。

缩短如何在前端应用程序测试中处理上传和解析文件中描述的优秀解决方案

代码语言:javascript
复制
this.post('/endpoint', (schema, request) => {
  const readFile = async (file: File): Promise<string> =>
    new Promise((resolve, reject) => {
      const reader = new FileReader();
      reader.onerror = () => reject(new Error('There was an error reading the file!'));
      reader.onload = () => resolve(reader.result as string);
      reader.readAsText(file);
    });
  const formData: FormData = request.requestBody as unknown as FormData;
  const uploadFile: File = formData.get('file') as File;
  const fileContents: string = await readFile(uploadFile);
  console.log('Uploaded file contents:', fileContents);
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71553851

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档