Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/431.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在javascript中将可读流转换为blob?_Javascript_Node.js_Fetch_Multipartform Data - Fatal编程技术网

如何在javascript中将可读流转换为blob?

如何在javascript中将可读流转换为blob?,javascript,node.js,fetch,multipartform-data,Javascript,Node.js,Fetch,Multipartform Data,我有一个测试,应该读取一个图像文件,并将该图像文件提交给一个接受多部分formdata的api 我正在使用FetchAPI和formdata类来设置图像文件。formdata只接受一个blob。所以在我的测试中,我必须将我读取的文件类型stream转换为blob test("should submit front document", async () => { const side = "front"; const stream = fs.create

我有一个测试,应该读取一个图像文件,并将该图像文件提交给一个接受多部分formdata的api

我正在使用FetchAPI和formdata类来设置图像文件。formdata只接受一个blob。所以在我的测试中,我必须将我读取的文件类型stream转换为blob

 test("should submit front document", async () => {

        const side = "front";
        const stream = fs.createReadStream(process.cwd() + "/test/resources/" + "id/front.jpg");
        const image = await streamToBlob(stream);
        const front = await myLibrary.document(id, side, image);
        expect(front.success).toBe(true);

    });
我正在尝试使用这里的库将流转换为blob。然而,测试失败了。如果我尝试
console.log(image)
我会得到以下
Blob{}

为什么这个blob是空的{}

async document(id, side, image) {

    const url = this.API_URL + "/document"

    let formData = new FormData();
    formData.set("image", image, "front.jpg");
    formData.set("side", side);

    let headers = new Headers();
    headers.set("Authorization", "Bearer " + this.API_KEY);

    const request = {
        method: "POST",
        body: formData,
        headers: headers,
    };

    try {

        const response = await fetch(url, request);
        const data = await response.json();

        return data;

    } catch (err) {
        throw err;
    }

}