ໃຫ້ node-fetch ເລືອກຕົວແທນພຣອກຊີຫຼັງການປ່ຽນທິດທາງ
ໃຊ້ຟັງຊັນຕົວແທນສຳລັບປາຍທາງ HTTP ແລະ HTTPS ເພື່ອໃຫ້ການປ່ຽນທິດທາງເລືອກຕົວແທນພຣອກຊີທີ່ເໝາະສົມໄດ້.
URL ທຳອິດອາດເປັນ HTTPS ແລະ URL ທີ່ຖືກປ່ຽນທິດທາງອາດເປັນ HTTP. ເລືອກຕົວແທນຕາມປາຍທາງຂອງແຕ່ລະຄຳຮ້ອງ, ແທນທີ່ຈະຜູກຕົວແທນດຽວໄວ້ກັບ URL ທຳອິດ.
ສຳລັບແພັກເກດ node-fetch ທີ່ນຳເຂົ້າໃນແອັບ ESM, ໃຫ້ຟັງຊັນໜຶ່ງ:
import fetch from 'node-fetch';
import { HttpProxyAgent } from 'http-proxy-agent';
import { HttpsProxyAgent } from 'https-proxy-agent';
const proxyUrl = 'http://proxy.example:8080';
const httpAgent = new HttpProxyAgent(proxyUrl);
const httpsAgent = new HttpsProxyAgent(proxyUrl);
const response = await fetch('https://api.example/', {
agent: url => url.protocol === 'http:' ? httpAgent : httpsAgent,
});ປ່ຽນ URL ຂອງ API ແລະຈຸດສິ້ນສຸດຂອງພຣອກຊີ. ສຳລັບ API ສາທາລະນະທີ່ອະນຸຍາດຜ່ານຕົວກາງສາທາລະນະ, ລາຍຊື່ພຣອກຊີ HTTP ສະເໜີຜູ້ສະໝັກສຳລັບ proxyUrl. ຕົວແທນທັງສອງສາມາດໃຊ້ຕົວຮັບຟັງພຣອກຊີ HTTP ດຽວກັນ; ຊື່ຂອງພວກມັນໝາຍເຖິງຄຳຮ້ອງໄປຫາປາຍທາງ.
| URL ທີ່ສົ່ງໃຫ້ຕົວເລືອກ | ຕົວແທນທີ່ຖືກເລືອກ |
|---|---|
| https://… | httpsAgent |
| http://… | httpAgent |
ດັ່ງນັ້ນຟັງຊັນຍັງເລືອກຕົວແທນທີ່ກົງກັນ ເມື່ອການປ່ຽນທິດທາງປ່ຽນໂປຣໂຕຄອນຂອງປາຍທາງ. proxyUrl ຍັງອະທິບາຍຕົວກາງ, ໂດຍບໍ່ຂຶ້ນກັບການຕັດສິນໃຈນັ້ນ.
ສ້າງຕົວແທນທັງສອງຄັ້ງດຽວສຳລັບພາລະວຽກ ແລ້ວໃຊ້ຄືນ. ຈັດການສະຖານະທີ່ສົ່ງຄືນ ແລະອ່ານເນື້ອຄວາມຕອບສະໜອງໃນໂຄດທີ່ເອີ້ນ. ສ່ວນຕິດຕໍ່ຕົວແທນນີ້ເປັນຂອງ node-fetch; fetch ທີ່ມີໃນ Node ໃຊ້ສ່ວນຕິດຕໍ່ການຂົນສົ່ງອື່ນ.