代码之家  ›  专栏  ›  技术社区  ›  andromeda

有没有任何方法可以传递一个变量来求值,或者从evaluate中加载一个json文件?

  •  0
  • andromeda  · 技术社区  · 7 年前

    我试图将一些位于本地JSON文件中的数据传递到casper.evaluate中,但似乎无法从那里访问它。我试过从外部评估加载它,但我无法从内部评估读取它。我还尝试从evaluate中加载它,如下所示:

    var keyWords = casper.evaluate(function () {
      // load local JSON file
      var json = require('../keywords.json');
      return json;
    });
    
    console.log(JSON.stringify(keyWords));
    
    1 回复  |  直到 7 年前
        1
  •  0
  •   Grant Miller    6 年前

    可以将JSON作为参数传递给 casper.evaluate() 使用以下方法:

    var keyWords = casper.evaluate(function (json) {
      return json;
    }, json);
    

    var casper = require('casper').create();
    
    casper.start('https://example.com/');
    
    casper.then(function () {
      var json = require('../keywords.json');
    
      var keyWords = this.evaluate(function (json) {
        return json;
      }, json);
    
      this.echo(JSON.stringify(keyWords));
    });
    
    casper.run();