使用流功能后如何获得响应?

时间:2019-05-29 07:48:43

标签: node.js minio

因此,我收到一个错误“将标头发送到客户端后无法设置标头”。我得到我的代码res.status(200).send(OK(fileObj,null,req));是同步的。我不确定所有流准备就绪后如何获得响应。

    try {

        const fileObj = [];

        const stream =  await minioClient.listObjects(bucket, '', true);


        await stream.on('data', async (obj, error) => { 

            await fileObj.push(obj);

            if (error) {

                console.log(error);

            }

            res.status(200).send(OK(fileObj, null, req));
        });

        stream.on('error', function (err) { 


            console.log(err);

        });  
    }

    catch (e) {

        console.log(e);

    }

预期结果:不应显示“将标头发送到客户端后无法设置标头”的响应。

1 个答案:

答案 0 :(得分:1)

可能您必须在流结束事件上发送响应。

stream.once('end', _=> res.status(200).send('OK'));