我使用child_process来通过phantomjs来执行yslow.js。 示例(CLI):
phantomjs yslow.js --info all --format json url
我们可以在分析后得到yslow.js返回给我的分析数据。
但有时数据yslow.js返回给我不能是一个完整的json文件。似乎回调参数“stdout”不能太长的数据。我想如果数据太大可以感染params stdout ......
有没有人遇到过这样的问题?
答案 0 :(得分:0)
如果您可以按块发送数据,请使用spawn
代替exec
。否则,您可以通过临时文件发送数据。您还可以使用WebSockets在节点和幻像之间创建通道。
答案 1 :(得分:0)
问题解决了。 child_process支持maxbuffer选项。 我们可以这样做:
child_process.execFile(file, [args], {maxBuffer: 1024 * 102400 }, function(err, stdout, stderr) {
if(stderr){
console.log(stderr);
}else {
console.log(stdout);
}
});
答案 2 :(得分:0)
在承诺中添加以下行
{maxBuffer: 1024 * 102400 }
示例:
restore.Restore().then({ maxBuffer: 1024 * 102400 }, function (result) {});