Пытаюсь сделать скриншотер сайтов с помощью express.js и puppeteer.js
Есть код, который пока что должен просто заскринить
https://ya.ru, сгенерировать рандомное имя и вернуть страницу с этим скриншотом:
const express = require('express');
const puppeteer = require('puppeteer');
const app = express();
const port = 3000;
app.get('/', (req, res) => {
//
res.send('<img src="screenshots/' + getPic() + '">');
});
app.listen(port, () => {
console.log(`Example app listening at http://localhost:${port}`)
});
function makeid(length) {
var result = '';
var characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
var charactersLength = characters.length;
for ( var i = 0; i < length; i++ ) {
result += characters.charAt(Math.floor(Math.random() * charactersLength));
}
return result;
}
async function getPic() {
const screenName = makeid(5) + '.png';
const browser = await puppeteer.launch({headless: true});
const page = await browser.newPage();
await page.goto('https://ya.ru');
await page.setUserAgent('Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36');
await page.setViewport({ width: 375, height: 812 });
await page.screenshot({path: 'screenshots/' + screenName});
await browser.close();
return screenName;
}
Но функция getPic() возвращает [object Promise].
Как правильно поместить в res.send результат выполнения функции getPic() ?