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