page.goto (puppeteer) 在打开它导航到的同一个 url 时不会停止调用自身
page.goto (puppeteer) does not stop calling itself when opening the same url it is navigating to
我正在尝试使用 puppeteer 将 html 网页转换为 pdf 文件。它正在将 html 网页转换为 pdf 文件,但问题是,page.goto
在其工作完成后没有停止。发生这种情况时,我 运行 这个本地主机服务器的终端变得有点无响应。我也在 heroku 上部署了它,但是当我访问 url 时,服务器以错误代码 503 响应我并且它没有在那里转换为 pdf。
let printPDF = async () => {
try {
const browser = await puppeteer.launch({ headless: true});
const page = await browser.newPage();
await page.goto('http://localhost:3000/preview')
await page.pdf({ format: 'A4' , path: `${__dirname}/contact.pdf`, printBackground: true});
await page.close();
await browser.close();
console.log("repeat") //logging to see its repetition
}
catch (error) {
await page.close();
await browser.close();
}
}
getReviewPage = ((req, res) => {
printPDF()
res.sendFile(`${__dirname}/form.html`)
})
app.route('/preview').get(getReviewPage);
由于printPDF
是一个返回Promise的异步函数,你需要等待它完成,以then
为例:
const getReviewPage = (req, res) => {
printPDF().then(() => res.sendFile(`${__dirname}/form.html`)
}
我正在尝试使用 puppeteer 将 html 网页转换为 pdf 文件。它正在将 html 网页转换为 pdf 文件,但问题是,page.goto
在其工作完成后没有停止。发生这种情况时,我 运行 这个本地主机服务器的终端变得有点无响应。我也在 heroku 上部署了它,但是当我访问 url 时,服务器以错误代码 503 响应我并且它没有在那里转换为 pdf。
let printPDF = async () => {
try {
const browser = await puppeteer.launch({ headless: true});
const page = await browser.newPage();
await page.goto('http://localhost:3000/preview')
await page.pdf({ format: 'A4' , path: `${__dirname}/contact.pdf`, printBackground: true});
await page.close();
await browser.close();
console.log("repeat") //logging to see its repetition
}
catch (error) {
await page.close();
await browser.close();
}
}
getReviewPage = ((req, res) => {
printPDF()
res.sendFile(`${__dirname}/form.html`)
})
app.route('/preview').get(getReviewPage);
由于printPDF
是一个返回Promise的异步函数,你需要等待它完成,以then
为例:
const getReviewPage = (req, res) => {
printPDF().then(() => res.sendFile(`${__dirname}/form.html`)
}