我有一个phantomJS脚本,它通过node.js脚本中的exec()
调用执行。
现在我需要从PhantomJS脚本返回一个字符串,以便可以在节点中使用它
有没有办法实现这个目标?
节点应用
child = exec('./phantomjs dumper.js',
function (error, stdout, stderr) {
console.log(stdout, stderr); // Always empty
});
dumper.js(Phantom)
var system = require('system');
var page = require('webpage').create();
page.open( system.args[1], function (status) {
if (status !== 'success') {
console.log('Unable to access the network!');
} else {
return "String"; // Doesn't work
}
phantom.exit('String2'); //Doesn't work either
});
答案 0 :(得分:10)
是的,只需使用JSON.stringify(result)
从PhantomJS输出JSON字符串,并使用JSON.parse(stdout)
在node.js中解析它。
就像这样:
<强> Node.js的:强>
child = exec('./phantomjs dumper.js',
function (error, stdout, stderr) {
console.log(stdout, stderr); // Always empty
var result = JSON.parse(stdout);
}
);
<强> PhantomJS:强>
var system = require('system');
var page = require('webpage').create();
page.open( system.args[1], function (status) {
if (status !== 'success') {
console.log('Unable to access the network!');
} else {
console.log(JSON.stringify({string:"This is a string", more: []}));
}
phantom.exit();
});
Here is some boilerplate了解如何使用PhantomJS进行刮擦。
答案 1 :(得分:0)