我希望将PDF文件保存在mysql服务器中,以后再在前端浏览器中发送。我使用了html-pdf,但不确定我是否正确,因为我正努力显示pdf文件。如下所示,我成功创建了pdf文件并保存在本地,这可以在下面的VScode snapshort中看到,然后我使用connect.query将文件保存到数据库中,我不确定我是否做得正确。大家有什么建议。
Snippet
NodeJS中的代码
app.post("/api/invoice", (req, res) => {
生成pdf
文件并保存在本地(我可以看到它在本地保存)
pdf
.create(pdfTemplate(customer_dataand_Itemsbought), {type:"pdf"})
.toFile(`./${user_details.Invoice_No_latest}.pdf`,
function (err, res) {})
保存在 mySQL DB
connection
.query("UPDATE users_basket
SET invoice_document=?
WHERE invoiceNo=?;",
[`${__dirname}/${user_details.Invoice_No_latest}.pdf`,
user_details.Invoice_No_latest],
function (err, results) {})}
data
从中进行选择DB
(包括pdf
文件+其他客户info
),然后使用API调用将其发送到浏览器
connection
.query("SELECT * FROM users_basket
WHERE users_user_id=?;",
[user_id],
function (err, results) { res.json(results);}
数据库中的屏幕截图,可以看到Invoice_document下的十六进制(在我保存pdf之后)
请,将此作为评论:
我已经处理文件生成/存储了几年了,发现将文件保存到数据库中并不是很好。这是因为您获得的用户越多,您将拥有的数据就越多。相信我,存储文件既庞大又昂贵。
如果您可以生成PDF(在内存中),请将其发送到FRONT,然后从内存中删除它就很棒了。但是,如果您非常需要保存PDF文件,则可以将其保存在MONGO DB中或将其存储在文件服务器中,而只需处理名称/键。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句