下载流在取消时未关闭

时间:2019-02-21 11:14:04

标签: node.js download stream hapi

我已经实现了带有HAPI的Rest API,该API可从数据库中下载CSV。当我使用wget http://localhost/csv/download开始下载并在下载过程中将其取消时,服务器会一直将流推送到最后。

代码:

async function downloadCsvHandler(request, responseToolkit) {
    let responseStream = new Transform({
        allowHalfOpen: false,
        writableObjectMode: true,
        transform: convertJsonToCsvMethod
    })
    return responseToolkit.response(responseStream)
}

您知道为什么即使取消下载后HAPI也不会关闭流吗?

1 个答案:

答案 0 :(得分:0)

问题是我使用stream.pipeline将流合并为一个,这导致该流启动,尽管HAPI尚未开始使用。通过使用stream1.pipe(stream2),直到从HAPI读取流后,流才会被激活,这也会导致流在HAPI停止时停止。