Node.js 有没有办法用Node/Express 2.x检查发送的标题?

Node.js 有没有办法用Node/Express 2.x检查发送的标题?,node.js,header,stream,express,Node.js,Header,Stream,Express,是否有办法使用node/express 2.x检查发送了哪些特定的头 我有一个文件下载,在大多数情况下都能正常工作,但在一些特定情况下,我在Chrome中遇到了一个错误(node中没有错误): 出于测试目的,我想看看是否已经发送了特定的头文件,有没有办法通过node.js实现这一点 …因为有人会问我关于设置头的代码,所以我会将一个流作为下载,并且只在一个位置设置头 res.setHeader('Content-disposition', 'attachment; filename=' + fi

是否有办法使用node/express 2.x检查发送了哪些特定的头

我有一个文件下载,在大多数情况下都能正常工作,但在一些特定情况下,我在Chrome中遇到了一个错误(node中没有错误):

出于测试目的,我想看看是否已经发送了特定的头文件,有没有办法通过node.js实现这一点


…因为有人会问我关于设置头的代码,所以我会将一个流作为下载,并且只在一个位置设置头

res.setHeader('Content-disposition', 'attachment; filename=' + filename)
res.setHeader('Content-Length', stats.size)
res.setHeader('Content-type', 'application/pdf')

stream.pipe(res)

正如@generalhenry在我的问题评论中所述:

stream.pipe(res).on('end', function () {
  console.log(res._headers); 
});

上面这一行对我有用。

HTTP响应是一个
可写流
。当流关闭时,将发出一个事件。因此,听它的诀窍是:

res.on('finish', function() {
    console.log(res._headers);
});
更加灵活。可以放在中间件或资源处理程序中

res.set("Content-disposition", "attachment; filename=\""+file.name+"\"")

这对我很有用。

stream.pipe(res.on('end',function(){console.log(res.headers);})应该在响应结束时记录发送的头。好主意!我已经有了一些事件处理程序来处理流何时结束。经过调查,我发现信息存储在
res.\u headers
中,你应该把它作为答案,我会接受的。
res.set("Content-disposition", "attachment; filename=\""+file.name+"\"")