ຮັກສາການຕອບສະໜອງຮູບພາບແບບຖານສອງໃນພຣັອກຊີ Node.js
ສົ່ງຕົວເນື້ອແບບຖານສອງຜ່ານພຣັອກຊີສົ່ງຕໍ່ Node ແລະ ເກັບການຖອດລະຫັດຂໍ້ຄວາມໄວ້ສຳລັບການປ່ຽນແປງຂໍ້ຄວາມທີ່ເຈດຕະນາ.
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 ທັງໝົດ, ແຕ່ມັນເກັບຕົວເນື້ອທັງໝົດໄວ້ໃນໜ່ວຍຄວາມຈຳ. ສະຕຣີມຮູບພາບທີ່ຜ່ານໄປບໍ່ຕ້ອງການຄ່າໃຊ້ຈ່າຍນັ້ນ.