Cadw ymatebion delwedd deuaidd mewn dirprwy Node.js
Llifwch gyrff deuaidd trwy ddirprwy ymlaen Node a chadwch ddatgodio testun ar gyfer trawsnewidiadau testun bwriadol.
const { pipeline } = require('node:stream');
pipeline(upstreamResponse, clientResponse, (error) => {
if (error) console.error('Proxy response failed:', error);
});
Defnyddiwch y llwybr corff hwn ar ôl dewis y targed, y cais i'r gweinydd uwch a pharatoi statws a phenawdau'r gwaelod. Mae ffrydiau Node yn darparu Buffers fel arfer; peidiwch â'u casglu mewn llinyn ar gyfer delweddau neu gynnwys deuaidd arall heb ei newid.
Mae pipeline yn cydlynu gwrthbwysau ac yn lledaenu methiannau. Gall ddinistrio'r cyrchfan ar gamgymeriad, felly peidiwch â chymryd y gellir anfon ymateb HTTP arall ar ôl hynny. Nid yw'r darn hwn yn weinydd dirprwy llawn.
Ar gyfer beitau sy'n pasio, cadwch fetadata cynrychiolaeth berthnasol fel y math cyfrwng a'r amgodio cynnwys, a thriniwch feysydd sy'n benodol i bob naid drwy reolau anfon ymlaen. Mae cymhariaeth o beitau gzip a phenawdau ymateb cyfatebol yn dangos y dewis rhwng cynrychiolaeth amgodiedig a datgodiedig.
Mae aildysgu HTML bwriadol angen llwybr arall: adnabod y math cyfrwng, trin cywasgiad a chymeriadau, trawsnewid testun a chynhyrchu metadata ar gyfer y beitau newydd. Ni all yr hen Content-Length ddisgrifio corff sydd wedi newid.
Gall Buffer.concat gadw cynnwys deuaidd pan fo angen byffro llawn, ond mae'n storio'r corff cyfan yn y cof. Nid oes angen y gost honno ar lif delwedd sy'n pasio.