如何在 Express.js 和 Node.js 中使用 Playwright 包

How to use Playwright package in Express.js with Node.js

我使用 Express.js 和 Node.js 并且我想在访问特定路由时解析信息,例如 /search

所以我使用 GET 方法创建 /search 路由,当我访问 /search 路由时。

所以我的search.js文件是这样的。

const firefox = require('playwright');
/**
 * GET /
 * Result page.
 */
exports.index = async (req, res) => {
  // let searchKeyword = req.body.search;
  (async () => {
    const browser = await firefox.launch({ headless: true });
    const context = await browser.newContext();
    const page = await context.newPage();
    await page.goto('https://example.com');
    await page.screenshot({ path: 'sample.png' });
    await browser.close();
  })();
}

但是当我用 node app.js 加载这个文件时,它显示了一个错误。

(node:21100) UnhandledPromiseRejectionWarning: TypeError: firefox.launch is not a function
    at C:\Users\person\Documents\GitHub\PandoraCube\controllers\search.js:24:35
    at exports.index (C:\Users\person\Documents\GitHub\PandoraCube\controllers\search.js:65:5)

当我尝试单独使用 Playwright 时它工作正常,但是当我将代码放入 Express 代码时。它不起作用。我该如何解决这个问题?

我已经在Google中搜索了错误信息,但似乎没有类似的情况。

您需要修复导入:

const {firefox} = require('playwright');