如何在节点中通过http管道流期间检测客户端关闭连接?

Rém*_*ras 5 javascript http stream node.js express

我在expressjs(nodejs)应用程序中将数据从服务器流式传输到客户端。

我做了这样的事情;

// let contentType and filename be correctly defined in context

function(req,res){
    res.setHeader('Content-Type',contentType);
    res.setHeader('Content-Disposition','attachment; filename='+filename);
    require('fs').createReadStream('/path/file').pipe(res);
}
Run Code Online (Sandbox Code Playgroud)

我想知道客户端何时无法下载文件,但我不知道如何继续。

has*_*sin 2

监听close响应对象上的事件。当与客户端的连接过早关闭(例如刷新页面或关闭选项卡)时,会发出此消息。

require('fs').createReadStream('/path/file').pipe(res).on('close',function(){
   //do stuff for closed connection
})
Run Code Online (Sandbox Code Playgroud)