使用node child_process时的Stdout缓冲区问题

12 浏览
0 Comments

使用node child_process时的Stdout缓冲区问题

我正在尝试使用Node的child_process来执行curl命令,从本地网络的共享文件夹中获取一个JSON文件(大约220Ko)。但实际上,它返回了一个我无法解决的缓冲区问题。

这是我的代码:

var exec = require('child_process').exec;
var execute = function(command, callback){
    exec(command, function(error, stdout, stderr){ callback(error, stdout); });
};
execute("curl http://" + ip + "/file.json", function(err, json, outerr) {
    if(err) throw err;
    console.log(json);
})

这是我收到的错误:

if(err) throw err;
          ^
Error: stdout maxBuffer exceeded.
    at Socket. (child_process.js:678:13)
    at Socket.EventEmitter.emit (events.js:95:17)
    at Socket. (_stream_readable.js:746:14)
    at Socket.EventEmitter.emit (events.js:92:17)
    at emitReadable_ (_stream_readable.js:408:10)
    at emitReadable (_stream_readable.js:404:5)
    at readableAddChunk (_stream_readable.js:165:9)
    at Socket.Readable.push (_stream_readable.js:127:10)
    at Pipe.onread (net.js:526:21)

0