Загрузка файла с сервера HapiJs

Мне нужна небольшая помощь, я хочу создать отчет в формате PDF.

Я использую модуль узла PDFKit

const PDFDocument = require("pdfkit");

function generatePDF(request, reply) {
  let doc = new PDFDocument();
   let path = __dirname + "/payments/" + "filename" + ".pdf";



  doc.text = "Hello World!";
  doc.text = "Hello Me!";
  doc.end();  
  return reply(doc)
       .header('Content-disposition', 'attachment; filename=' + 'payments.pdf')  

}

На стороне клиента я пробовал так много вещей:

1.

button.addEventListener("click", function (event) {
        axios.get('/payment-pdf')
            .then(function (response) {
                console.log(response);

            })
            .catch(function (error) {
                console.log(error);
            });

    }, false)

2.

<a href="/payment-pdf" download>Export</a>

Как загрузить файл PDF? Это похоже на простую задачу, но я не могу ее выполнить.

Спасибо.

1 ответ

.text не выглядит как строка из примеров в re adme PDFKit. Это функция, которая будет использоваться как doc.text('Hello world!'),

Я тестировал по следующему маршруту:

{
    method: 'GET',
    path: '/payment-pdf',
    config: {
        auth: false
    },
    handler: (request: hapi.Request, reply: hapi.IReply) => {
        let doc = new PDFDocument();

        doc.text('Hello world!');
        doc.text('Hello me!');
        doc.end();

        reply(doc)
            .header('Content-Disposition', 'attachment; filename=payments.pdf');
    }
}

И я использовал этот HTML-файл, чтобы загрузить PDF:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <a href="http://localhost:4200/payment-pdf" target="_blank">Export</a>
</body>
</html>
Другие вопросы по тегам