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

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

Uzu ĉi tiun korpan vojon post elekto de celo, la peto al la fonto kaj preparo de stato kaj kaplinioj por la kliento. Node-fluoj kutime liveras Buffer-ojn; ne amasigu ilin en ĉenon por bildoj aŭ alia neŝanĝita binara enhavo.

pipeline kunordigas retropremon kaj disvastigas fiaskojn. Ĝi povas detrui la celon ĉe eraro, do ne supozu, ke poste eblas sendi alian HTTP-eraran respondon. Ĉi tiu fragmento ne estas kompleta prokura servilo.

Por trapasantaj bajtoj konservu koncernajn metadatenojn de la reprezento, kiel la specon de amaskomunikilo kaj la enhavan kodadon, kaj traktu kampojn specifajn al salto per plusendaj reguloj. Komparo de gzip-bajtoj kaj kongruaj respondaj kaplinioj montras la elekton inter kodita kaj malĉifrita reprezento.

Intenca reverkado de HTML bezonas alian vojon: rekonu ĝian amaskomunikilan specon, traktu kunpremadon kaj signaron, transformu la tekston kaj generu metadatenojn por la novaj bajtoj. La malnova Content-Length ne povas priskribi ŝanĝitan korpon.

Buffer.concat povas konservi binaran enhavon kiam plena bufrado necesas, sed ĝi konservas la tutan korpon en memoro. Trapasanta bildfluo ne bezonas tiun koston.

Rilataj artikoloj