Varðveittu tvöföld myndsvör í Node.js milliþjóni
Streymdu tvöföldum líkömum gegnum Node-framstreymisþjón og haltu textaaflausn fyrir viljandi textabreytingar.
const { pipeline } = require('node:stream');
pipeline(upstreamResponse, clientResponse, (error) => {
if (error) console.error('Proxy response failed:', error);
});
Notaðu þessa líkamsleið eftir val á marki, beiðninni til uppstreymis og undirbúning stöðu og hausa til biðlarans. Node-streymir skila venjulega Buffer; safnaðu þeim ekki í streng fyrir myndir eða annað óbreytt tvöfalt efni.
pipeline samhæfir bakþrýsting og dreifir mistökum. Það getur eyðilagt áfangastaðinn við villu, svo ekki gera ráð fyrir að hægt sé að senda aðra HTTP-villusvör eftir það. Þetta brot er ekki heill milliþjónn.
Fyrir byte sem fara í gegnum skaltu varðveita viðeigandi lýsigögn framsetningar, svo sem miðiltegund og efnisauðkennun, og meðhöndla reiti sem eru sértækir fyrir hvert stökk með framsendingarreglum. Samanburður á gzip-byte og samsvarandi svarhöfum sýnir valið milli auðkenndrar og afauðkenndrar framsetningar.
Viljandi endurskrifun HTML krefst annarrar leiðar: þekktu miðiltegundina, meðhöndlaðu þjöppun og stafasett, umbreyttu textanum og búðu til lýsigögn fyrir nýju bytin. Gamla Content-Length getur ekki lýst breyttum líkama.
Buffer.concat getur varðveitt tvöfalt efni þegar full biðminni er nauðsynleg, en geymir allan líkamann í minni. Myndstreymi sem fer í gegnum þarf ekki þann kostnað.