我有一些参数name1,name2,name3。如何获取包含这些参数的JSON文件?我试着这样做,但我一无所获:
var jsonStr = this.evaluate(function(){
var outjson = {};
var outjson = {'name1': name1, 'name2': name2, 'name3': name3};
return JSON.stringify(outjson);
});
fs.write('myFile.json', jsonStr, 'w');
答案 0 :(得分:0)
该功能没有关闭,您评估。您可以在此处阅读相关内容:http://phantomjs.org/api/webpage/method/evaluate.html
当评估函数时,这就是变量name1,name2和name3未定义的原因。
Phantom 2在当前版本中存在以下错误 - 评估功能中的错误不会引发任何异常。在这种情况下,评估只会返回 null 。
因此,您在评估的功能中出错并且什么都没有。
您可以尝试以下打印
的示例jsonStr:{“name1”:1,“name2”:2,“name3”:3}
var casper = require('casper').create();
var fs = require('fs');
casper.start('http://casperjs.org/', function() {});
casper.then(function() {
var jsonStr = this.evaluate(function() {
var outJson = {'name1': 1, 'name2': 2, 'name3': 3};
return JSON.stringify(outJson);
});
this.echo('jsonStr: ' + jsonStr);
fs.write('myFile.json', jsonStr, 'w');
});
casper.run();
以及以下打印
的示例jsonStr:null
var casper = require('casper').create();
casper.start('http://casperjs.org/', function() {});
casper.then(function() {
var jsonStr = this.evaluate(function() {
var outJson = {'name1': name1, 'name2': name2, 'name3': name3};
return JSON.stringify(outJson);
});
this.echo('jsonStr: ' + jsonStr);
});
casper.run();