Miragejs可以开箱即用,但似乎无法处理FormData。当我发布FormData并在海市蜃楼端点中记录接收到的request时,request.requestBody是空的。
简化代码示例:
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});
// ...this.post('/endpoint', (schema, request) => {
console.log('request:', request);
// request.requestBody is an empty string!
});可能是一个相关的问题:https://github.com/miragejs/ember-cli-mirage/issues/74
发布于 2022-03-21 07:00:56
可以将request.requestBody转换为FormData,然后解析该文件。
缩短如何在前端应用程序测试中处理上传和解析文件中描述的优秀解决方案
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);
});https://stackoverflow.com/questions/71553851
复制相似问题