2016-07-20 2 views
0

私はchild_processを使ってphantomjsによってyslow.jsを実行します。 例(CLI):nodejs execFileコールバックパラメータ "stdout"の最大長は何ですか?

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

私たちは分析した後に私に戻るyslow.js分析データを取得することができます。

しかし、データyslow.jsが完全なjsonファイルになることはありません。コールバックのパラメータ "stdout"は長すぎるデータではありませんか?データが大きすぎると、標準出力に感染する可能性があります。

誰もこのような問題に遭遇しましたか?

答えて

0

チャンクでデータを送信できる場合は、execの代わりにspawnを使用します。それ以外の場合は、一時ファイル経由でデータを送信できます。また、WebSocketを使用して、ノードとファントムの間にチャネルを作成することもできます。

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); 
     } 
    }); 
関連する問題