Javascript 如何包含许多CasperJS脚本所共有的变量和函数?

Javascript 如何包含许多CasperJS脚本所共有的变量和函数?,javascript,web-scraping,phantomjs,casperjs,require,Javascript,Web Scraping,Phantomjs,Casperjs,Require,假设我需要CasperJS向本地主机服务器报告进度步骤。我无法使用用户casper.open发送POST请求,因为可以说它会“切换”页面,并且无法正确继续其他步骤 我通过评估浏览器中的XMLHttpRequest()来避开这个问题,以ping到localhost。虽然不理想,但效果很好 随着脚本数量的增加,我更愿意将此通用功能移动到一个模块中,也就是说,我希望将多个功能移动到一个单独的模块中 据我所知,CasperJS不像node.js那样工作require()规则是不同的。我如何才能做到这一点

假设我需要CasperJS向本地主机服务器报告进度步骤。我无法使用用户
casper.open
发送POST请求,因为可以说它会“切换”页面,并且无法正确继续其他步骤

我通过评估浏览器中的
XMLHttpRequest()
来避开这个问题,以ping到localhost。虽然不理想,但效果很好

随着脚本数量的增加,我更愿意将此通用功能移动到一个模块中,也就是说,我希望将多个功能移动到一个单独的模块中


据我所知,CasperJS不像node.js那样工作
require()
规则是不同的。我如何才能做到这一点呢?

既然CasperJS是基于PhantomJS的,你可以使用它,它是“模仿的”

  • 您可以通过模块文件的路径(完整路径或相对路径)来要求模块文件

    var tools = require("./tools.js");
    var tools = require("./lib/utils/tools.js");
    var tools = require("/home/scraping/project/lib/utils/tools.js");
    
  • 或者,您可以按照node.js约定,在项目文件夹中创建一个子文件夹
    node\u modules/module\u name
    ,并将模块的代码放入
    index.js
    文件中。然后它将驻留在以下路径中:

    ./node_modules/tools/index.js
    
  • 之后,在CasperJS脚本中需要它:

    var-tools=require(“工具”)

    模块将以以下方式导出其功能:

    function test(){
        console.log("This is test");
    }
    
    module.exports = {
        test: test
    };