knoten-Superagent responseType('blob') vs. Puffer (wahr)

stimmen
0

Aufgrund der Verweigerung der Anfrage schreiben wir derzeit den Anfragedienst in unserer Knotenanwendung mit Superagent neu. Bis jetzt sieht alles gut aus, aber wir sind uns nicht ganz sicher, wie man binäre Daten/Oktett-Stream anfordert und den eigentlichen Antwortkörper als a Bufferverarbeitet. Laut den Dokumenten (auf der Client-Seite) sollte man

superAgentRequest.responseType('blob');

die unter NodeJS gut zu funktionieren scheint, aber ich habe auch dieses Github-Problem gefunden, bei dem sie

superAgentRequest.buffer(true);

was genauso gut funktioniert. Ich frage mich also, was die bevorzugte Methode ist, binäre Daten in NodeJS anzufordern?

Veröffentlicht am 22/05/2020 um 16:51
quelle vom benutzer
In anderen Sprachen...                            


2 antworten


stimmen
0

Gemäß dem Quellcode des Superagenten responseTypesetzt das Setzen des bufferFlags auf true, d.h. dasselbe wie das manuelle Setzen auf true.

Im Falle des Umgangs mit binären Daten/Oktett-Strömen wird ein Binärdaten-Parser verwendet, der eigentlich nur ein einfacher Puffer ist:

module.exports = (res, fn) => {
  const data = []; // Binary data needs binary storage

  res.on('data', chunk => {
    data.push(chunk);
  });
  res.on('end', () => {
    fn(null, Buffer.concat(data));
  });
};

In beiden Fällen wird dieser Parser verwendet, was das Verhalten erklärt. Es ist also nicht wirklich wichtig, was Sie für den Umgang mit binären Daten/Oktett-Strömen verwenden.

Beantwortet am 03/06/2020 um 15:59
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more