我已经实现了带有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也不会关闭流吗?
答案 0 :(得分:0)
问题是我使用stream.pipeline
将流合并为一个,这导致该流启动,尽管HAPI尚未开始使用。通过使用stream1.pipe(stream2)
,直到从HAPI读取流后,流才会被激活,这也会导致流在HAPI停止时停止。