Laat node-fetch die proxy-agent ná 'n aanstuur kies
Gebruik 'n agent-funksie vir HTTP- en HTTPS-bestemmings sodat 'n aanstuur die gepaste proxy-agent kan kies.
Die eerste URL kan HTTPS wees en 'n aangestuurde URL HTTP. Kies die agent vir die bestemming van elke versoek, eerder as om een agent aan die eerste URL te koppel.
Vir die ingevoerde node-fetch-pakket in 'n ESM-toepassing, verskaf 'n funksie:
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,
});Vervang die API-URL en die proxy-eindpunt. Vir 'n publieke API wat deur 'n publieke tussenganger toegelaat word, verskaf die HTTP-proxylys kandidate vir proxyUrl. Die twee agente kan dieselfde HTTP-proxy-luisteraar gebruik; hul name verwys na die bestemmingsversoek.
| URL wat aan die kieser gegee word | Gekose agent |
|---|---|
| https://… | httpsAgent |
| http://… | httpAgent |
Die funksie kies dus steeds die pasende agent as 'n aanstuur die bestemmingsprotokol verander. proxyUrl beskryf steeds die tussenganger, onafhanklik van daardie besluit.
Skep die agente een keer vir die werklading en hergebruik hulle. Hanteer die teruggegewe status en verbruik die antwoordliggaam in die oproepende kode. Hierdie agent-koppelvlak hoort by node-fetch; Node se ingeboude fetch gebruik 'n ander vervoerkoppelvlak.