我使用Kuzzle作为我的移动应用程序和多个网站的所有业务逻辑的后端。在一个网站上,我需要下载包含多个报告的PDF。为了保持相同的架构,我想在一个定制的Kuzzle插件中实现这一点。
插件的默认响应被封装在默认的HTML响应中,如何精确地自定义头来发送文件?
发布于 2019-05-29 22:40:39
您可以使用Request.setResult方法来指定返回原始有效负载并修改响应头。
然后只需返回一个包含文件内容的Buffer。
async sendPdf (request) {
const file = fs.readFileSync('./file.pdf');
request.setResult(null, {
// Tell Kuzzle that this result will contain a raw payload
raw: true,
headers: {
// Set HTTP response headers
'Content-Length': file.length.toString(),
'Content-Type': 'application/pdf',
'Content-Disposition': `attachment; filename="file.pdf"`,
'Cache-Control': 'no-cache'
}
);
return file;
}当然,这只适用于HTTP或WebSocket协议。
https://stackoverflow.com/questions/56362724
复制相似问题