В настоящее время я пытаюсь создать PDF-файл с кукловодом, а затем отобразить страницу с сообщением "спасибо" пользователю. Как только пользователь перейдет на эту страницу, Puppeteer PDF, как мы надеемся, начнет загрузку на компьютер пользователя. Но у меня проблемы.
Я могу успешно перенаправить пользователя на страницу, на которой он хочет, после сбора некоторой базовой c информации из формы:
app.post("/generatepdf", function (req, res) {
UserPdfRequest.create({ email: req.body.email, companyName: req.body.companyName }, function (err, createdRequest) {
if (err) {
console.log(err);
} else {
console.log(createdRequest);
res.redirect("/" + createdRequest._id + "/pdf-download");
}
})
});
Затем я отправляю его на свой маршрут, который обрабатывает найти нужного пользователя, сгенерировать PDF, затем отобразить страницу благодарности:
app.get("/:companyId/pdf-download", function (req, res) {
UserPdfRequest.findById(req.params.companyId, function (err, foundRequest) {
if (err) {
console.log(err);
} else {
console.log(foundRequest);
(async () => {
const browser = await puppeteer.launch()
const page = await browser.newPage()
const url = 'http://localhost:3000/' + req.params.companyId + '/pdf-download';
await page.goto(url, {waitUntil: 'networkidle0'});
const buffer = await page.pdf({ format: "A4", printBackground: true });
res.type('application/pdf')
res.send(buffer)
browser.close()
})()
res.render("pdfDownload", { email: foundRequest.email, companyName: foundRequest.companyName });
}
})
});
Но когда я попадаю на страницу благодарности, мой PDF не начинает загружаться. Кроме того, мой console.log (foundRequest), кажется, очень быстро регистрируется снова и снова в моем терминале, и я также получаю следующие ошибки:
https://imgur.com/ZsApRHn
Я знаю, что, вероятно, я здесь над головой, учитывая, что у меня нет большого опыта работы с asyn c. Я уверен, что это простое исправление, которое мне не хватает; Однако любая помощь (и объяснение) будет чрезвычайно ценной и ценной. Спасибо за ваше время!