diff --git a/appengine/headless-chrome/app.js b/appengine/headless-chrome/app.js index 9d3219197b..cb7cc29614 100644 --- a/appengine/headless-chrome/app.js +++ b/appengine/headless-chrome/app.js @@ -22,25 +22,6 @@ const app = express(); let browser; -async function init () { - // [START browser] - browser = await puppeteer.launch({ - args: ['--no-sandbox'] - }); - // [END browser] - - const server = app.listen(process.env.PORT || 8080, async err => { - if (err) { - await browser.close(); - return console.error(err); - } - const port = server.address().port; - console.info(`App listening on port ${port}`); - }); -} - -init(); - app.use(async (req, res) => { const url = req.query.url; @@ -48,6 +29,14 @@ app.use(async (req, res) => { return res.send('Please provide URL as GET parameter, for example: ?url=https://example.com'); } + if (!browser) { + // [START browser] + browser = await puppeteer.launch({ + args: ['--no-sandbox'] + }); + // [END browser] + } + let page = await browser.newPage(); await page.goto(url); const imageBuffer = await page.screenshot(); @@ -55,6 +44,14 @@ app.use(async (req, res) => { res.set('Content-Type', 'image/png'); res.send(imageBuffer); }); + +const server = app.listen(process.env.PORT || 8080, err => { + if (err) { + return console.error(err); + } + const port = server.address().port; + console.info(`App listening on port ${port}`); +}); // [END full_sample] module.exports = app;