const { pipeline } = require('node:stream');

pipeline(upstreamResponse, clientResponse, (error) => {
  if (error) console.error('Proxy response failed:', error);
});

Utilitza aquest camí del cos després de la selecció de l'objectiu, la petició a l'origen i la preparació de l'estat i les capçaleres de baixada. Els fluxos de Node solen lliurar Buffers; no els acumulis en una cadena per a imatges o altre contingut binari inalterat.

pipeline coordina la contrapressió i propaga els errors. Pot destruir la destinació en cas d'error, així que no assumeixis que després es pugui enviar una altra resposta HTTP d'error. Aquest fragment no és un servidor proxy complet.

Per als bytes que passen, conserva les metadades de representació rellevants, com el tipus de mitjà i la codificació del contingut, i tracta els camps propis de cada salt amb les regles de reenviament. Una comparació de bytes gzip i capçaleres de resposta coincidents mostra l'elecció entre representació codificada i descodificada.

La reescriptura deliberada d'HTML necessita un altre camí: reconeix el tipus de mitjà, gestiona la compressió i el joc de caràcters, transforma el text i genera metadades per als nous bytes. L'antic Content-Length no pot descriure un cos canviat.

Buffer.concat pot conservar contingut binari quan cal un emmagatzematge complet, però guarda tot el cos a la memòria. Un flux d'imatge que passa no necessita aquest cost.

Articles relacionats