Bewarje binaire ôfbyldingsreaksjes yn in Node.js-proxy
Stjoer binaire lichems troch in Node-forwardproxy en bewarje tekstdekodearring foar bewuste teksttransformaasjes.
const { pipeline } = require('node:stream');
pipeline(upstreamResponse, clientResponse, (error) => {
if (error) console.error('Proxy response failed:', error);
});
Brûk dit lichemsbestân nei doelseleksje, it fersyk nei de boarne en it tarieden fan status en headers foar de klant. Node-streams leverje normaalwei Buffers; sammelje se net yn in tekenrige foar ôfbyldings of oare ûnferoare binaire ynhâld.
pipeline koördinearret tsjindruk en ferspriedt flaters. By in flater kin it de bestimming ferneatigje, dat nim dan net oan dat der dêrnei noch in oare HTTP-flaterreaksje stjoerd wurde kin. Dit fragmint is gjin folsleine proxyserver.
Foar trochjûne bytes: bewarje relevante metadata fan de represintaasje, lykas mediatype en ynhâldskodearring, en behannelje hop-spesifike fjilden fia trochstjoerregels. In ferliking fan gzip-bytes en oerienkommende reaksjeheaders lit de kar sjen tusken kodearre en dekodearre represintaasje.
Bewust HTML oerskriuwe freget in oare rûte: werken de mediatype, behannelje kompresje en tekenset, transformearje de tekst en meitsje metadata foar de nije bytes. De âlde Content-Length kin in feroare lichem net beskriuwe.
Buffer.concat kin binaire ynhâld bewarje as folsleine buffering nedich is, mar bewarret it hiele lichem yn it ûnthâld. In trochgeande ôfbyldingsstream hat dy kosten net nedich.