错误:评估失败:ReferenceError:req未定义

我有一个快速的设置。 出于某种原因,req在这个函数中不被识别:

router.post('/search', (req, res) => { ;(async (req, res) => { //req and res here are just parameters in function definition const browser = await puppeteer.launch() const page = await browser.newPage() await page.goto(`https://www.google.com/search?tbm=bks&q=%22this+is%22`) const result = await page.evaluate(() => { console.log('CLAUSESS:', req.body.clauses) const clauses = req.body.clauses return clauses.map(clause => clause.textContent) }) result.join('\n') await browser.close() res.send(result) })(req,res); //This is where we call the function, so we need to pass the actual values here. }) 

这是错误的:

UnhandledPromiseRejectionWarning:未处理的承诺拒绝(拒绝ID:1):错误:评估失败:ReferenceError:req未定义在:2:32

可能是什么原因?

来自快速路由处理程序的返回值无关紧要,因此它可以是async

 router.post('/search', async (req, res, next) => { try { const browser = await puppeteer.launch() const page = await browser.newPage() await page.goto(`https://www.google.com/search?tbm=bks&q=%22this+is%22`) const result = await page.evaluate(() => { console.log('CLAUSESS:', req.body.clauses) const clauses = req.body.clauses return clauses.map(clause => clause.textContent) }) result.join('\n') await browser.close() res.send(result) } catch (err) { next(err) } })