Как отправить pdf файл из ответа плагина Kuzzle? - PullRequest
1 голос
/ 29 мая 2019

Я использую Kuzzle в качестве бэкэнда для всей моей бизнес-логики для мобильного приложения и нескольких веб-сайтов.На одном сайте мне нужно скачать PDF, содержащий несколько отчетов.Чтобы остаться в той же архитектуре, я хочу добиться этого в пользовательском плагине Kuzzle.

Ответ плагина по умолчанию обернут в ответ HTML по умолчанию, как я могу указать пользовательские заголовки для отправки файла?

1 Ответ

0 голосов
/ 29 мая 2019

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

...