Анализ PDF-файла, загруженного пользователем, а затем запись данных PDF в JSON

#node.js #json #pdf

Вопрос:

Я пытаюсь преобразовать PDF-файл, загруженный пользователем, в JSON. Мой мыслительный процесс заключается в том, что после того, как я проанализировал PDF, я могу записать эту проанализированную информацию в файл JSON, содержащий информацию о PDF. Я использую multer для обработки загрузки файла и PDF2JSON для анализа буфера, заданного хранилищем памяти multer. Мой вопрос в том, что когда я использую метод pdfParser.parseBuffer в своем буфере, я возвращаюсь неопределенным. Что я здесь делаю не так?

 const cors = require("cors");
const fs = require("fs");
const multer = require("multer");
const PDFParser = require("pdf2json");


const app = express();

const storage = multer.memoryStorage();
const upload = multer({ storage });

app.use(cors());
app.use(express.urlencoded({ extended: true }));
app.use(express.json());
app.post("/upload", upload.single("file"), (req, res) => {
  if (!req.file) {
    return res.status(404).send({ message: "Please upload a file" });
  }
  const pdfParser = new PDFParser();
  let fileBuffer = req.file.buffer;
  fs.writeFileSync("uploadedPDF", fileBuffer);
  fs.readFile("./uploadedPDF", (err, fileBuffer) => {
    console.log("reading");
    console.log(fileBuffer);
    if (!err) {
      let parsedPDF = pdfParser.parseBuffer(fileBuffer);
      console.log("getting parsed pdf");
      console.log(parsedPDF);
    } else {
      console.log(err);
    }
  });
  return res.send("Single file");
});

const PORT = 5000 || process.env.PORT;
app.listen(PORT, () => {
  console.log(`server is running on ${PORT} nice and hot`);
});