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

时间:2015-07-23 12:01:03

标签: javascript node.js http express stream

我在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);
}

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

1 个答案:

答案 0 :(得分:2)

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

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