gpt4 book ai didi

node.js - 使用 html-pdf 创建 pdf 时出错

转载 作者:行者123 更新时间:2023-12-04 11:44:23 25 4
gpt4 key购买 nike

尝试在 Node js 中使用 html-pdf 生成 pdf,但在某些记录后出现以下错误:

TypeError: Cannot read property 'on' of undefined`

events.js:183
throw er; // Unhandled 'error' event
^
Error: spawn /usr/local/lib/node_modules/phantomjs-prebuilt/lib/phantom/bin/phantomjs EAGAIN
代码:
    const filePathName = path.join(__dirname, '../../../views/', "invoice.ejs");
const htmlString = fs.readFileSync(filePathName).toString();
let options = { format: 'Letter',"timeout": 600000 };
const ejsData = ejs.render(htmlString, data);

return pdf.create(ejsData, options).toFile(path.join(__dirname, '../../../tmp/', data.filename), (err, response) => {
if (err) return console.log('err',err);
return response;
});

最佳答案

在行const ejsData = ejs.render(htmlString, data); , ejs.render()异步 .因此,要么您必须将函数转换为 异步 并添加 等待 像下面,

const yourFunction = async () => {
const filePathName = path.join(__dirname, '../../../views/', "invoice.ejs");
const htmlString = fs.readFileSync(filePathName).toString();
let options = { format: 'Letter',"timeout": 600000 };
const ejsData = await ejs.render(htmlString, data); //adding await

return pdf.create(ejsData, options).toFile(path.join(__dirname, '../../../tmp/', data.filename), (err, response) => {
if (err) return console.log('err',err);
return response;
});
}
,做这样的事情:
    const filePathName = path.join(__dirname, '../../../views/', "invoice.ejs");
const htmlString = fs.readFileSync(filePathName).toString();
let options = { format: 'Letter',"timeout": 600000 };
ejs.renderFile(htmlString, data, (err, ejsData) => {
if (err) {
res.send(err);
} else {
pdf.create(ejsData, options).toFile((path.join(__dirname, '../../../tmp/', data.filename), (err, response) => {
if (err) return console.log('err',err);
return response;
}););
});
}

关于node.js - 使用 html-pdf 创建 pdf 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64853922/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com