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

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

Gunakan jalur badan ini setelah pemilihan target, permintaan ke hulu, dan penyiapan status serta header ke hilir. Aliran Node biasanya memberikan Buffer; jangan menumpuknya ke dalam string untuk gambar atau konten biner lain yang tidak berubah.

pipeline mengoordinasikan backpressure dan menyebarkan kegagalan. Ini dapat menghancurkan tujuan saat terjadi kesalahan, jadi jangan menganggap respons kesalahan HTTP lain masih bisa dikirim setelahnya. Fragmen ini bukan server proxy lengkap.

Untuk byte yang diteruskan, pertahankan metadata representasi yang relevan seperti jenis media dan pengodean konten, lalu tangani bidang khusus hop melalui aturan penerusan. Perbandingan byte gzip dan header respons yang cocok menunjukkan pilihan antara representasi terkode dan terdekode.

Penulisan ulang HTML yang disengaja memerlukan jalur lain: kenali jenis medianya, tangani kompresi dan kumpulan karakter, transformasikan teks, dan hasilkan metadata untuk byte baru. Content-Length lama tidak dapat menggambarkan badan yang berubah.

Buffer.concat dapat mempertahankan konten biner saat buffering penuh diperlukan, tetapi menyimpan seluruh badan di memori. Aliran gambar yang diteruskan tidak memerlukan biaya itu.

Artikel terkait