我試圖執行curl使用節點child_process從本地網絡中的共享文件夾中獲取JSON文件(約220Ko)。但它實際上返回了我無法完成的緩衝區問題。 這裏是我的代碼:使用節點child_process stdout緩衝區問題
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.<anonymous> (child_process.js:678:13)
at Socket.EventEmitter.emit (events.js:95:17)
at Socket.<anonymous> (_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)
這解決了我的問題,謝謝!共享文件夾實際上是在webdav協議下,需要一個摘要式身份驗證,這就是爲什麼我使用curl,可以很容易地使用curl --digest http:// login:password @「+ ip +」/ webdav/file來處理它。 json' – Yonnaled
真的很好它工作正常 –