Käytä välityspalvelimen IP:tä Noden Undicilla
Liitä Undici ProxyAgent yhteen fetch-pyyntöön ja pidä sen yhteyspooli erossa muusta Node-liikenteestä.
Undici reitittää pyynnön dispatcherin kautta. Luo ProxyAgent valitulle HTTP-välityspalvelimelle ja anna se fetch-kutsulle sen sijaan, että muutat koko prosessin globaalia dispatcheria.
npm install [email protected]
import { fetch, ProxyAgent } from 'undici';
const dispatcher = new ProxyAgent('http://203.0.113.10:8080');
try {
const response = await fetch('https://example.com/', {
dispatcher,
signal: AbortSignal.timeout(15000),
});
console.log(response.status);
console.log(await response.text());
} finally {
await dispatcher.close();
}
Tallenna ohjelma .mjs-tiedostoksi tai käytä ES-moduuliprojektia. Korvaa dokumentaation IP HTTP-välityspalvelimella HTTP-välityspalvelinluettelosta. Tuonti käyttää tarkoituksella Undicin fetch-toteutusta, joten dispatcher-valinta kuuluu esimerkin asiakkaalle.
Tarkista Node-yhteensopivuus ennen IP:n syyttämistä
Undicin tukemat Node-versiot riippuvat pakettijulkaisusta. Esimerkki käyttää Undici 8.12.3:a, joka vaatii Node 22.19.0:n tai uudemman. Moduulin lataus- tai moottoriversiovirhe tapahtuu ennen pyynnön saapumista välityspalvelimeen. Tarkista asennetun paketin vaatimukset äläkä oleta kaikkien Node-versioiden ajavan uusinta Undicia.
Yksi agentti voi palvella toistuvia pyyntöjä
Lyhyt ohjelma sulkee dispatcherin lopussa. Jos käynnissä oleva sovellus lähettää useita pyyntöjä saman päätepisteen kautta, säilytä agentti tälle kuormalle ja sulje se työn loputtua. Agentin luonti ja sulkeminen jokaiselle URL:lle estää hyödyllisen yhteyksien uudelleenkäytön.
Globaali dispatcher sopii vain tarkoitukselliseen laajempaan muutokseen. Nimenomainen välittäminen helpottaa välityspalvelimen IP:n kokeilua muuttamatta toisen komponentin lähteviä pyyntöjä.
Katso vastausta ja epäonnistumisen vaihetta
Fetch ei käsittele jokaista HTTP-virhetilaa hylättynä Promisena. 403 tai 429 voi olla välityspalvelimen kautta kulkenut todellinen sivuston vastaus. Yhteys- tai tunnelivirhe voi sen sijaan hylätä pyynnön ennen vastausolion syntyä. Lue tila erillään kutsun heittämistä virheistä.
Jos todennus tarvitaan, Undicin ProxyAgent tarjoaa asetuksia konstruktorissa. Älä lisää välityspalvelimen valtuutusotsaketta sivuston pyynnön otsakkeisiin; agentti hoitaa toista yhteyden osuutta.