Я новичок в javascript и nodejs
Я пытаюсь сгенерировать таблицу PDF, используя node.js, используя guppepeteer.
Я следовал учебному пособию по YouTube, и код ниже тот жекак используется в учебнике.Примечание. Я не принимаю кредит на приведенный ниже код.
Я использовал образец HTML-шаблона, который заполняю данные из файла json.
const puppeteer = require('puppeteer');
const fs = require('fs-extra');
const hbs = require('handlebars');
const path = require('path');
const data = require('./stressData2.json');
const compile = async function(templateName, data){
const filePath = await path.join(process.cwd(), 'templates', `${templateName}.hbs`);
const html = await fs.readFile(filePath, 'utf-8');
return await hbs.compile(html)(data);
};
(async function(){
try{
const browser = await puppeteer.launch();
const page = await browser.newPage();
const content = await compile('stressTemplate', data);
await page.setContent(content);
await page.pdf({
path: 'pdfs/mypdf.pdf',
format: 'A4',
printBackground: true
});
console.log('done');
await browser.close();
await process.exit();
} catch(e){
console.log('Error', e);
}
})();
Я могу провести стресс-тест до 100000 результатов, но когда я нажимаю 200000, я получаю сообщение об ошибке ниже
{ Error: Protocol error (Runtime.callFunctionOn): Target closed.
at Promise (/userdir/node_modules/puppeteer/lib/Connection.js:186:56)
at new Promise (<anonymous>)
at CDPSession.send (/userdir/node_modules/puppeteer/lib/Connection.js:185:12)
at ExecutionContext.evaluateHandle (/userdir/node_modules/puppeteer/lib/ExecutionContext.js:
115:75)
at ExecutionContext.<anonymous> (/userdir/node_modules/puppeteer/lib/helper.js:145:23)
at ExecutionContext.evaluate (/userdir/node_modules/puppeteer/lib/ExecutionContext.js:58:31)
at ExecutionContext.<anonymous> (/userdir/node_modules/puppeteer/lib/helper.js:145:23)
at Frame.evaluate (/userdir/node_modules/puppeteer/lib/FrameManager.js:447:20)
-- ASYNC --
at Frame.<anonymous> (/userdir/node_modules/puppeteer/lib/helper.js:144:27)
at Frame.setContent (/userdir/node_modules/puppeteer/lib/FrameManager.js:541:16)
at Frame.<anonymous> (/userdir/node_modules/puppeteer/lib/helper.js:145:23)
at Page.setContent (/userdir/node_modules/puppeteer/lib/Page.js:615:42)
at Page.<anonymous> (/userdir/node_modules/puppeteer/lib/helper.js:145:23)
at /userdir/git/NodeJsServer/serverPdfGenerator.js:18:20
message: 'Protocol error (Runtime.callFunctionOn): Target closed.' }
Я искал в Интернете, и я не могу это исправить, кто-нибудь сталкивался с этой проблемой, прежде чем я увидел этот пост также UnhandledPromiseRejectionWarning:Ошибка: ошибка протокола (Runtime.callFunctionOn): цель закрыта.(Кукловод) , но не может ее решить
PR Ссылка на Github: https://github.com/GoogleChrome/puppeteer/issues/3683