Zunächst, überprüfen Sie, dass diese Funktionen eigentlich die Bytes alle auf einmal benötigen. Sie sollten wirklich 'data'
Ereignisse akzeptieren, so dass Sie einfach die Puffer in der Reihenfolge weitergeben können, in der Sie sie erhalten.
Wie auch immer, hier ist ein Brute-Force-Weg, um alle Datenblock Puffer ohne Decodierung sie verketten:
var bodyparts = [];
var bodylength = 0;
res.on('data', function(chunk){
bodyparts.push(chunk);
bodylength += chunk.length;
});
res.on('end', function(){
var body = new Buffer(bodylength);
var bodyPos=0;
for (var i=0; i < bodyparts.length; i++) {
bodyparts[i].copy(body, bodyPos, 0, bodyparts[i].length);
bodyPos += bodyparts[i].length;
}
doStuffWith(body); // yay
});