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

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

ໃຊ້ເສັ້ນທາງຕົວເນື້ອນີ້ຫຼັງຈາກເລືອກເປົ້າໝາຍ, ຄຳຮ້ອງຂໍໄປຕົ້ນທາງ ແລະ ການກະກຽມສະຖານະກັບຫົວຂໍ້ໄປປາຍທາງ. ສະຕຣີມ Node ປົກກະຕິໃຫ້ Buffer; ຢ່າເກັບພວກມັນເປັນສະຕຣິງສຳລັບຮູບພາບ ຫຼື ເນື້ອຫາແບບຖານສອງອື່ນທີ່ບໍ່ປ່ຽນແປງ.

pipeline ປະສານງານ backpressure ແລະ ແຜ່ກະຈາຍຄວາມລົ້ມເຫຼວ. ມັນອາດທຳລາຍປາຍທາງເມື່ອເກີດຂໍ້ຜິດພາດ, ດັ່ງນັ້ນຢ່າສົມມຸດວ່າສາມາດສົ່ງການຕອບສະໜອງຂໍ້ຜິດພາດ HTTP ອີກອັນໜຶ່ງຫຼັງຈາກນັ້ນໄດ້. ສ່ວນນີ້ບໍ່ແມ່ນເຊີບເວີພຣັອກຊີເຕັມຮູບແບບ.

ສຳລັບໄບທີ່ຜ່ານໄປ, ຮັກສາເມຕາດາຕາຂອງການນຳສະເໜີທີ່ກ່ຽວຂ້ອງ ເຊັ່ນ ປະເພດສື່ ແລະ ການເຂົ້າລະຫັດເນື້ອຫາ, ແລະ ຈັດການຊ່ອງຂໍ້ມູນສະເພາະ hop ຜ່ານກົດການສົ່ງຕໍ່. ໄບ gzip ແລະ ຫົວຂໍ້ການຕອບສະໜອງທີ່ກົງກັນ ສະແດງໃຫ້ເຫັນການເລືອກລະຫວ່າງການນຳສະເໜີທີ່ເຂົ້າລະຫັດແລ້ວ ແລະ ຖອດລະຫັດແລ້ວ.

ການຂຽນ HTML ຄືນໃໝ່ແບບເຈດຕະນາຕ້ອງການເສັ້ນທາງອື່ນ: ຮູ້ຈັກປະເພດສື່, ຈັດການການບີບອັດ ແລະ ຊຸດຕົວອັກສອນ, ປ່ຽນແປງຂໍ້ຄວາມ ແລະ ສ້າງເມຕາດາຕາສຳລັບໄບໃໝ່. Content-Length ເກົ່າບໍ່ສາມາດອະທິບາຍຕົວເນື້ອທີ່ປ່ຽນແປງໄດ້.

Buffer.concat ສາມາດຮັກສາເນື້ອຫາແບບຖານສອງໄດ້ເມື່ອຕ້ອງການ buffer ທັງໝົດ, ແຕ່ມັນເກັບຕົວເນື້ອທັງໝົດໄວ້ໃນໜ່ວຍຄວາມຈຳ. ສະຕຣີມຮູບພາບທີ່ຜ່ານໄປບໍ່ຕ້ອງການຄ່າໃຊ້ຈ່າຍນັ້ນ.

ບົດຄວາມທີ່ກ່ຽວຂ້ອງ