Вы можете использовать метод 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.