我正在尝试使用puppeteer软件包从网站截取屏幕截图
为此我用Express创建了一个简单的服务器:
app.get('/requestScreenShootForDesktop/:id', function(req, res){
(async () => {
const pathUpload = 'uploads/' + Math.floor(Date.now() / 1000) + '.png';
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto(this.req.params.id);
await page.setViewport({width: 1920, height: 1080});
await page.screenshot({path: pathUpload});
await browser.close();
await res.send({msg: 'ScreenShot Ok'});
})();
});
这个代码的问题是在线await page.goto(this.req.params.id);
,Node说:
无法读取未定义的属性'params'
这是因为属于函数req
的变量app.get
不存在于异步范围内。
如何解决这个问题,并将我的变量传递给异步函数?
放弃生命,不要使用qazxsw poi访问qazxsw poi
this
req
您可以保留IIFE,但删除app.get('/requestScreenShootForDesktop/:id', async function(req, res){
const pathUpload = 'uploads/' + Math.floor(Date.now() / 1000) + '.png';
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto(req.params.id);
await page.setViewport({width: 1920, height: 1080});
await page.screenshot({path: pathUpload});
await browser.close();
res.send({msg: 'ScreenShot Ok'});
});
关键字