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

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

Cleachd an t-slighe cuirp seo an dèidh taghadh targaid, an t-iarrtas chun an tùis agus ullachadh inbhe is cinn-naidheachd don neach-dèiligidh. Mar is trice bheir sruthan Node Buffer; na cruinnich iad ann an sreang airson ìomhaighean no susbaint binary eile nach eil ag atharrachadh.

Bidh pipeline a' co-òrdanachadh frith-bhrùthaidh agus a' sgaoileadh fàilligheadh. Dh'fhaodadh e an ceann-uidhe a sgrios air mearachd, mar sin na bi a' smaoineachadh gun gabh freagairt mearachd HTTP eile a chur às a dhèidh. Chan e seo frithealaiche proxy slàn.

Airson bytes a tha a' dol troimhe, glèidh meata-dàta riochdachaidh iomchaidh leithid seòrsa meadhan agus còdachadh susbainte, agus làimhsich raointean a tha sònraichte do gach leum tro riaghailtean cur air adhart. Tha coimeas eadar bytes gzip agus cinn-fhreagairt cho-ionann a' sealltainn an roghainn eadar riochdachadh còdaichte is dì-chòdaichte.

Feumaidh ath-sgrìobhadh HTML a dh'aona ghnothaich slighe eile: aithnich a sheòrsa meadhan, làimhsich teannachadh agus seata charactaran, atharraich an teacsa agus gin meata-dàta airson nam bytes ùra. Chan urrainn don t-seann Content-Length cunntas a thoirt air corp a dh'atharraich.

Faodaidh Buffer.concat susbaint binary a ghlèidheadh nuair a tha feum air bufadh slàn, ach stòraichidh e an corp gu lèir sa chuimhne. Chan fheum sruth ìomhaigh a tha a' dol troimhe a' chosgais sin.

Artaigilean co-cheangailte