问题描述
我正在尝试制作一个用于在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 (将#修改为@)