Kasuta puhverserveri IP-d Node’i Undiciga
Lisa Undici ProxyAgent ühele fetch-päringule ja hoia selle ühenduspuul lahus muust Node’i liiklusest.
Undici suunab päringu dispatcheri kaudu. Loo valitud HTTP-puhverserverile ProxyAgent ja anna see fetch-kutsele kogu protsessi globaalse dispatcheri muutmise asemel.
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();
}
Salvesta programm .mjs failina või kasuta ES-moodulite projekti. Asenda dokumentatsiooni IP HTTP-puhverserveriga HTTP-puhverserverite loendist. Import kasutab teadlikult Undici fetch-teostust, seega dispatcher-valik kuulub näites olevale kliendile.
Kontrolli Node’i ühilduvust enne IP süüdistamist
Undici toetatud Node’i versioonid sõltuvad paketiväljaandest. Näide kasutab Undici 8.12.3, mis nõuab Node 22.19.0 või uuemat. Mooduli laadimise või mootoriversiooni viga tekib enne päringu jõudmist puhverserverini. Kontrolli paigaldatud paketi nõudeid, ära eelda, et iga Node käitab uusimat Undicit.
Üks agent võib teenindada korduvaid päringuid
Lühike programm sulgeb dispatcheri lõpus. Kui töötav rakendus saadab mitu päringut sama lõpp-punkti kaudu, säilita agent selle töökoormuse jaoks ja sulge töö lõppedes. Iga URL-i jaoks agendi loomine ning sulgemine takistab kasulikku ühenduste taaskasutust.
Globaalne dispatcher sobib ainult kavandatud laiema muudatuse korral. Selgesõnaline andmine hõlbustab puhverserveri IP katsetamist teise komponendi väljuvaid päringuid muutmata.
Vaata vastust ja tõrke etappi
Fetch ei käsitle iga HTTP veakoodi tagasilükatud Promise’ina. 403 või 429 võib olla puhverserveri kaudu tulnud tegelik veebisaidi vastus. Ühenduse või tunneli viga võib hoopis päringu tagasi lükata enne vastusobjekti olemasolu. Loe olekut eraldi kutse visatud vigadest.
Kui autentimine on nõutav, pakub Undici ProxyAgent konstruktori tasemel valikuid. Ära lisa puhverserveri autoriseerimispäist veebisaidi päringupäistesse; agent tegeleb teise ühenduslõiguga.