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

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

લક્ષ્ય પસંદગી, અપસ્ટ્રીમ વિનંતી અને ડાઉનસ્ટ્રીમ સ્થિતિ તથા હેડરની તૈયારી પછી આ બોડી માર્ગ વાપરો. Node સ્ટ્રીમ સામાન્ય રીતે Buffer આપે છે; ઇમેજ કે અન્ય અપરિવર્તિત બાઈનરી સામગ્રી માટે તેમને સ્ટ્રિંગમાં એકઠા ન કરો.

pipeline બેકપ્રેશરનું સંકલન કરે છે અને નિષ્ફળતાઓ ફેલાવે છે. ભૂલ વખતે તે લક્ષ્યનો નાશ કરી શકે છે, તેથી એમ ન માનો કે તે પછી બીજો HTTP ભૂલ પ્રતિસાદ મોકલી શકાય. આ ટુકડો સંપૂર્ણ પ્રોક્સી સર્વર નથી.

પસાર થતા બાઇટ્સ માટે, મીડિયા પ્રકાર અને સામગ્રી એન્કોડિંગ જેવા સંબંધિત રજૂઆત મેટાડેટા જાળવી રાખો, અને હોપ-વિશિષ્ટ ફીલ્ડ ફોરવર્ડિંગ નિયમો દ્વારા સંભાળો. gzip બાઇટ્સ અને મેળ ખાતા પ્રતિસાદ હેડરની સરખામણી એન્કોડેડ વિરુદ્ધ ડિકોડેડ રજૂઆતની પસંદગી દર્શાવે છે.

ઇરાદાપૂર્વક HTML ફરીથી લખવા માટે બીજો માર્ગ જોઈએ: તેનો મીડિયા પ્રકાર ઓળખો, કમ્પ્રેશન અને કેરેક્ટર સેટ સંભાળો, ટેક્સ્ટ રૂપાંતરિત કરો અને નવા બાઇટ્સ માટે મેટાડેટા બનાવો. જૂનું Content-Length બદલાયેલી બોડીનું વર્ણન કરી શકતું નથી.

Buffer.concat સંપૂર્ણ બફરિંગ જરૂરી હોય ત્યારે બાઈનરી સામગ્રી જાળવી શકે છે, પણ આખી બોડી મેમરીમાં રાખે છે. પસાર થતા ઇમેજ સ્ટ્રીમને એ ખર્ચની જરૂર નથી.

સંબંધિત લેખો