nodejs execFile回调参数“stdout”的最大长度是多少?

时间:2016-07-20 08:38:17

标签: javascript node.js child-process

我使用child_process来通过phantomjs来执行yslow.js。 示例(CLI):

 phantomjs yslow.js --info all --format json url

我们可以在分析后得到yslow.js返回给我的分析数据。

但有时数据yslow.js返回给我不能是一个完整的json文件。似乎回调参数“stdout”不能太长的数据。我想如果数据太大可以感染params stdout ......

有没有人遇到过这样的问题?

3 个答案:

答案 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) {});