如何使用参数加载外部文件

时间:2017-10-20 18:29:05

标签: node.js request inject nightmare

所以我正在创建一个使用nightmareJS和请求的脚本。我正在请求从网页抓取数据,然后让nightmareJS导航到页面。然后我使用

将javascript文件注入噩梦会话
.inject('js', 'injectFile.js')

这一切都很完美,但我试图实现其他目的。在使用请求从其他页面获取数据后,我想将该数据传递到injectFile.js文件中。例如,我会得到一个请求的网址。然后在调用时在injectFile.js文件中使用该url。无论如何/模块实现这一点?提前致谢

1 个答案:

答案 0 :(得分:0)

执行此操作的最佳方法是在injectFile.js中定义一个函数,这样无论您执行什么操作都不会在注入文件时立即运行,但只有在您调用该函数时才会运行:

function doStuff(params) {
  // do stuff with params
  // (this probably contains your entire injectFile.js script)
}

然后使用nightmare.evaluate在将其注入浏览器上下文后调用该函数:

nightmare.evaluate(function(params) {
  doStuff(params);
}, yourFavoriteParamValues)