如何在nodejs和puppeteer之间交换数据?

时间:2019-07-01 02:18:34

标签: javascript node.js puppeteer

我制作了一个从index.js开始的nodejs应用程序。 然后,index.js启动puppeteer,并通过addscripttag函数将bot.js注入无头api页面。

我让index.js设置了一个cookie,以便在注入javascript之前传达初始值,但是我需要更通用的交换数据的方法。

我想到了两种方法;第一种是使用Cookie,第二种是通过套接字连接进行联网。

在index.js(节点)和puppeteer(无头chrome)之间还有其他发送和接收数据的方法吗?

1 个答案:

答案 0 :(得分:0)

首先,puppeteer IS是nodejs端应用程序,因此它们只有一个环境,因此您无需“发送”任何东西。就像在其他任何JS代码中一样传递数据。我假设您想在页面和nodejs之间传输数据。

要将数据从nodejs传递到页面,请使用page.evaluate。您可以在页面上下文中调用任何代码,范围从简单地设置一些变量到直接调用带有必要参数的任何函数。

要启动从页面侧到nodejs的传输,请首先使用page.exposeFunction注册一个nodejs侧回调函数,然后从页面代码中调用它,它将在nodejs上下文中执行。就像以前的情况一样,其他所有内容都取决于该函数的代码。就像将传递给它的参数存储在某个变量中一样,或者直接对数据执行几乎任何您想要的操作一样简单。