Lat node-fetch velje proxy-agenten etter ei omdirigering
Bruk ein agentfunksjon for HTTP- og HTTPS-destinasjonar, slik at ei omdirigering kan velje rett proxy-agent.
Den første URL-en kan vere HTTPS og den omdirigerte URL-en HTTP. Vel agenten ut frå destinasjonen til kvar førespurnad, i staden for å binde éin agent til den første URL-en.
For den importerte node-fetch-pakken i ein ESM-applikasjon, oppgi ein funksjon:
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,
});Byt ut API-URL-en og proxy-endepunktet. For eit offentleg API som er tillate gjennom ein offentleg mellommann, gir HTTP-proxylista kandidatar til proxyUrl. Dei to agentane kan bruke same HTTP-proxy-lyttar; namna deira viser til førespurnaden til destinasjonen.
| URL sendt til veljaren | Vald agent |
|---|---|
| https://… | httpsAgent |
| http://… | httpAgent |
Funksjonen vel derfor framleis den samsvarande agenten om ei omdirigering endrar protokollen til destinasjonen. proxyUrl skildrar framleis mellommannen, uavhengig av den avgjerda.
Lag agentane éin gong for arbeidslasta og bruk dei på nytt. Handter statusen som blir returnert, og les svarteksten i den kallande koden. Dette agentgrensesnittet høyrer til node-fetch; den innebygde fetch-en i Node brukar eit anna transportgrensesnitt.