【问题标题】:How to get a response after using stream functionality?使用流功能后如何获得响应?
【发布时间】:2019-05-29 07:48:42
【问题描述】:

所以,我收到一个错误“在将标头发送到客户端后无法设置标头”。我得到了我的代码 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);

    }

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

【问题讨论】:

  • 使用end 事件,该事件仅在流完成时调用。 stream.on('end', () => res.send(OK(fileObj, null, req));)

标签: node.js minio


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2016-10-30
    • 2015-11-30
    • 2015-08-14
    • 1970-01-01
    • 2017-08-04
    • 1970-01-01
    • 2019-04-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多