无法使用Node js使用“简历解析器”在Firebase中解析简单的pdf

问题描述

我正在尝试制作一个用于在Firebase中解析简单pdf的api。我可以在任何给定用户(使用Bearer令牌)下使用我的api上传简历,但是在上传pdf之后,我创建了pdf网址。然后使用该pdf url,我试图使用“ resume-parser”库来解析pdf,但是当我签入邮递员时似乎没有响应。

以下是制作api的代码

    const firebase = require("firebase");
    firebase.initializeApp(config);

    const dataBase = require("../models");
    const axios = require("axios");
    const moment = require("moment");
    const User = dataBase.User;
    
    //.... I have login and authentication code here and which are working fine.
    // Then I want to use this pdf parsing code 

    exports.pdfparse2 = (req,res) => {
    const BusBoy = require("busboy");
    const path = require("path");
    const os = require("os");
    const fs = require("fs");

    var busboy = new BusBoy({ headers: req.headers });
    const bucket = admin.storage().bucket("mybucketname.appspot.com");
    let mimtype;
    var saveto;
    let pdfFileName;

    busboy.on("file",function(name,file,filename,encoding,mimetype) {
     console.log(
      "File [" +
        name +
        "]: filename: " +
        filename +
        ",encoding: " +
        encoding +
        ",mimetype: " +
        mimetype
    );
    const imageExtension = filename.split(".")[filename.split(".").length - 1];
    var fname = filename + "." + imageExtension;
    pdfFileName = filename;
    saveto = path.join(os.tmpdir(),filename);
    file.pipe(fs.createWriteStream(saveto));
    mimtype = mimetype;
  });

   busboy.on("finish",async function() {
     await bucket
       .upload(saveto,{
         resumable: false,gzip: true,Metadata: {
           Metadata: {
             contentType: mimtype
           }
         }
       })
       .then(() => {
         const pdfUrl = `https://storage.googleapis.com/mybucketname.appspot.com/${pdfFileName}`;
         return db.doc(`/users/${req.user.userId}`).update({ pdfUrl });
         ResumeParser.parseResumeUrl(pdfUrl) // url
         .then(data => {
           resumeData = {
           link: pdfUrl
          };
          db.doc(`/users/${req.user.userId}`).set(
             {
              resumeList: admin.firestore.FieldValue.arrayUnion(resumeData)
            },{ merge: true }
           );

        //console.log('Yay! ',data);
          return res.status(200).json({
            resume_data: data,resume_link: pdfUrl
          });
        })
        .catch(error => {
          console.error(error);
        }); 
      })
      .then(() => {
        return res.json({ message: "Image Uploaded Successfully" });
      })
      .catch(err => {
        console.error(err);
        return res
          .status(400)
          .send(JSON.stringify(err,["message","arguments","type","name"]));
      });

    res.end();
  });
  req.pipe(busboy);
};

然后我签入了邮递员,它只给我提供json输出{“ message”:“图像成功上传”}},但是pdf解析现在可以工作了。 postman.png

有人可以帮我吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)