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

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

Bruk denne kroppsveien etter målvalg, forespørselen til kilden og klargjøring av status og hoder til klienten. Node-strømmer leverer normalt Buffere; ikke samle dem i en streng for bilder eller annet uendret binært innhold.

pipeline koordinerer mottrykk og forplanter feil. Det kan ødelegge målet ved feil, så ikke anta at det kan sendes enda et HTTP-feilsvar etterpå. Dette utdraget er ikke en fullstendig proxyserver.

For bytes som passerer, bevar relevante metadata for representasjonen, som medietype og innholdskoding, og håndter hop-spesifikke felt gjennom videresendingsregler. En sammenligning av gzip-byte og samsvarende svarhoder viser valget mellom kodet og dekodet representasjon.

Bevisst omskriving av HTML trenger en annen vei: gjenkjenn medietypen, håndter komprimering og tegnsett, transformer teksten og generer metadata for de nye bytene. Den gamle Content-Length kan ikke beskrive en endret kropp.

Buffer.concat kan bevare binært innhold når full bufreing er nødvendig, men lagrer hele kroppen i minnet. En passerende bildestrøm trenger ikke den kostnaden.

Relaterte artikler