#node.js #reactjs #express #node-html-pdf
Вопрос:
Здравствуйте все, я получаю сообщение об ошибке после загрузки pdf-файла в react js с помощью библиотеки html-pdf в узле js. «Не удается загрузить PDF-документы». После отправки формы, когда пользователь просмотрит подробную информацию. пользователи получают возможность загрузки PDF-файла для загрузки pdf-файла.
Ниже приведен мой серверный код
server.js
app.post('/teachersdata/:id', (req, res) => {
pdf.create(pdftemplate(req.body)).toFile('result.pdf', (err) => {
if(err) {
res.send(Promise.reject());
}
res.send(Promise.resolve());
});
});
app.get('/fetch-pdf', (req, res) => {
res.sendFile(`${__dirname}/result.pdf`)
})
User.js(Реагирует js)
import React from 'react'
import { useState,useEffect } from 'react';
import { useParams } from 'react-router';
import axios from 'axios';
import { saveAs } from 'file-saver';
const User = () => {
const [data,setdata]=useState([]);
const {id} =useParams();
useEffect(() => {
loadusers();
// eslint-disable-next-line
}, []);
const loadusers = async () => {
const result = await axios.get(`http://localhost:3001/teachersdata/${id}`);
console.log(result)
setdata(result.data)
}
const createAndDownloadPdf = () => {
axios.post('/teachersdata/:id', setdata)
.then(() => axios.get('fetch-pdf', { responseType: 'blob' }))
.then((res) => {
const pdfBlob = new Blob([res.data], { type: 'application/pdf' });
saveAs(pdfBlob, 'newPdf.pdf');
})
}
return (
<div>
<h1>User</h1>
<h1 className="display-4">User Id: {id}</h1>
<hr />
{
data.map((user)=>(
<ul className="list-group w-50">
<li className="list-group-item">Firstname: {user.firstname}</li>
<li className="list-group-item">Lastname: {user.lastname}</li>
<li className="list-group-item">Email: {user.email}</li>
<li className="list-group-item">Phone: {user.mobile}</li>
<li className="list-group-item">Address: {user.address}</li>
<li className="list-group-item">City: {user.city}</li>
<li className="list-group-item">Pincode: {user.pincode}</li>
<li className="list-group-item">Conference: {user.conference}</li>
<li className="list-group-item">Seminar: {user.seminar}</li>
<li className="list-group-item">Paper Presented: {user.paper}</li>
</ul>
))}
<button class="btn btn-primary me-md-2" onClick={createAndDownloadPdf}>Download PDF</button>
</div>
)
}
export default User;
Пожалуйста, помогите