Säilytä binaariset kuvavastaukset Node.js-välityspalvelimessa
Välitä binaariset rungot Node-edelleenvälityspalvelimen kautta ja varaa tekstin dekoodaus tarkoituksellisiin tekstimuunnoksiin.
const { pipeline } = require('node:stream');
pipeline(upstreamResponse, clientResponse, (error) => {
if (error) console.error('Proxy response failed:', error);
});
Käytä tätä runkopolkua kohteen valinnan, ylösvirtapyynnön sekä alavirran tilan ja otsikoiden valmistelun jälkeen. Noden virrat tarjoavat yleensä Buffereita; älä kerää niitä merkkijonoon kuville tai muulle muuttumattomalle binaariselle sisällölle.
pipeline koordinoi vastapainetta ja välittää virheet. Se voi tuhota kohteen virheen sattuessa, joten älä oleta, että sen jälkeen voidaan lähettää toinen HTTP-virhevastaus. Tämä katkelma ei ole täysi välityspalvelin.
Läpimeneville tavuille säilytä olennaiset esityksen metatiedot, kuten mediatyyppi ja sisällön koodaus, ja käsittele hyppykohtaiset kentät edelleenlähetyssäännöillä. Vertailu gzip-tavuista ja vastaavista vastausotsikoista osoittaa valinnan koodatun ja dekoodatun esityksen välillä.
Tarkoituksellinen HTML:n uudelleenkirjoitus tarvitsee toisen polun: tunnista mediatyyppi, käsittele pakkaus ja merkistö, muunna teksti ja luo metatiedot uusille tavuille. Vanha Content-Length ei voi kuvata muuttunutta runkoa.
Buffer.concat voi säilyttää binaarisen sisällön, kun täysi puskurointi vaaditaan, mutta tallentaa koko rungon muistiin. Läpimenevä kuvavirta ei tarvitse tätä kustannusta.