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

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

Använd denna kroppsväg efter målval, begäran till källan och förberedelse av status och huvuden till klienten. Node-strömmar levererar normalt Buffers; samla dem inte i en sträng för bilder eller annat oförändrat binärt innehåll.

pipeline samordnar mottryck och sprider fel. Det kan förstöra målet vid fel, så anta inte att ytterligare ett HTTP-felsvar kan skickas efteråt. Detta fragment är inte en fullständig proxyserver.

För byte som passerar, bevara relevanta metadata för representationen, som mediatyp och innehållskodning, och hantera hoppspecifika fält genom vidarebefordringsregler. En jämförelse av gzip-byte och matchande svarshuvuden visar valet mellan kodad och avkodad representation.

Medveten omskrivning av HTML kräver en annan väg: känn igen mediatypen, hantera komprimering och teckenuppsättning, transformera texten och generera metadata för de nya byten. Den gamla Content-Length kan inte beskriva en ändrad kropp.

Buffer.concat kan bevara binärt innehåll när full buffring krävs, men lagrar hela kroppen i minnet. En passerande bildström behöver inte den kostnaden.

Relaterade artiklar