I'm developing a web capture app and it seems that all the functions are with async but console shows me a SyntaxError: await is only valid in async function error.
I tried to change all the functions to async but it seems still not working. Is it an error because of the fs module? I think when I tried without fs module in another app it actually works.
Here's my full code
const puppeteer = require("puppeteer"); const fs = require('fs'); let galleryName = "frozen"; // Enter gallery name (async () => { const browser = await puppeteer.launch(); const page = await browser.newPage(); // Adjustments particular to this page to ensure we hit desktop breakpoint. page.setViewport({ width: 1000, height: 10000, deviceScaleFactor: 1 }); fs.readFile('db.txt', function (err, data) { if (err) throw err; let array = data.toString().split("\n"); for (i in array) { console.log(`Now Processing : ${array[i]} ${array.length - i -1} left`); await page.goto(`https://gall.dcinside.com/${galleryName}/${array[i]}`), { // !!!!ERROR shows from here waitUntil: "networkidle2", timeout: 0 }; async function screenshotDOMElement(opts = {}) { const padding = "padding" in opts ? opts.padding : 0; const path = "path" in opts ? opts.path : null; const selector = opts.selector; if (!selector) throw Error("Please provide a selector."); const rect = await page.evaluate(selector => { const element = document.querySelector(selector); if (!element) return null; const { x, y, width, height } = element.getBoundingClientRect(); return { left: x, top: y, width, height, id: element.id }; }, selector); if (!rect) throw Error( `Could not find element that matches selector: ${selector}.` ); return await page.screenshot({ path, clip: { x: rect.left - padding, y: rect.top - padding, width: rect.width, height: rect.height + padding * 2 } }); } await screenshotDOMElement({ path: `./result/${pageNumArray[i]}.png`, selector: ".view_content_wrap", padding: 10 }); } }); // // await browser.close(); })();
fs.readFileis notasync.