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 קען אָפּהיטן בינאַרן אינהאַלט ווען פֿול בופֿערירונג איז נייטיק, אָבער האַלט דעם גאַנצן קערפּער אין זכּרון. אַ דורכגייערישער בילד־שטראָם דאַרף נישט די דאָזיקע קאָסטן.

פֿאַרבונדענע אַרטיקלען