我的脚本如下:
page.open('http://google.com',function(){
var base64 = page.renderBase64('PNG');
system.stdout.writeLine(JSON.stringify({
image: base64
}));
page.close();
phantom.exit(0);
}
当我使用phantomjs script.js
运行此操作时,我将输出设为{"image":"content"}
。但是当我使用node index.js
生成幻像并运行相同的脚本时,我会得到类似的东西
undefined:1
{"image":"content"}
这种不期望的undefined输出可能是什么原因:1
node.js脚本如下: `
var phantomjs = require('phantomjs');
var childProcess = require('child_process');
var spillOver = '';
var phantomProcess = childProcess.spawn(phantomjs.path,['./image.js']);
phantomProcess.stdin.write(JSON.stringify({url:"http://google.com"}) + '\n');
phantomProcess.stdout.on('data', function(data){
var stringData = data.toString();
if(stringData.indexOf('\n')===-1){
spillOver += stringData;
}else{
stringData = spillOver+stringData;
spillOver = '';
}
stringData.split('\n').forEach(d =>{
if(d === '')
return;
var result = JSON.parse(d);
console.log(result);
});
var result = JSON.parse(stringData);
console.log(stringData);
});
phantomProcess.on('exit', function(code){
console.log('exited with code'+code);
});
`