我有一个用node.js和puppeteer编写的小应用程序。我试图将一个功能从另一个文件导入到我的evaluate
回调中,但是该函数从不触发并导致evaluate
失败。这是一个非常简单的示例,也许有人可以看到我是否在这里做一些愚蠢的事情。
从文件A调用评估
product = await page.evaluate( source.getProductInformation )
source.getProductInformation
是在文件B中定义的,当我从文件B中调用所需的函数时,此函数将失败
const priceSavePercent = calculateSavePercentage(priceWasNum, priceCurrentNum)
calculateSavePercentage
仅在文件B const { calculateSavePercentage } = require('../modules/helpers')
顶部
我尝试在所有地方控制台日志,并且没有任何输出到控制台,并且我的评估回调不返回其假定的对象。我想是否需要对文件B依赖项的其他方式?我有一个npm包,并且文件B中也需要一个常量,两者都不会引起问题。任何帮助是极大的赞赏。让我知道您是否需要更多信息。
答案 0 :(得分:0)
问题是,当您进行评估时,您正在访问的是您正在抓取JavaScript的页面,而不是您自己的页面,因此未定义函数,您可以尝试类似的方法。
await page.evaluate((source) => {
source.getProductInformation();
}, source);