Օգտագործեք պրոքսի IP Node-ի Undici-ով
Undici ProxyAgent-ը տվեք մեկ fetch հարցման և կապերի պուլը բաժանեք այլ Node տրաֆիկից։
Undici-ն հարցումը երթուղավորում է dispatcher-ով։ Ստեղծեք ProxyAgent ընտրված HTTP պրոքսիի համար և տվեք fetch կանչին՝ ամբողջ գործընթացի գլոբալ dispatcher-ը փոխելու փոխարեն։
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();
}
Ծրագիրը պահեք որպես .mjs ֆայլ կամ օգտագործեք ES մոդուլների նախագիծ։ Փաստաթղթային IP-ն փոխարինեք HTTP պրոքսիով HTTP պրոքսիների ցանկից։ Ներմուծումը միտումնավոր օգտագործում է Undici-ի fetch իրականացումը, ուստի dispatcher ընտրանքը վերաբերում է ցուցադրված հաճախորդին։
IP-ին մեղադրելուց առաջ ստուգեք Node-ի համատեղելիությունը
Undici-ի աջակցվող Node տարբերակները կախված են փաթեթի թողարկումից։ Օրինակը օգտագործում է Undici 8.12.3, որը պահանջում է Node 22.19.0 կամ ավելի նոր։ Մոդուլի բեռնման կամ շարժիչի տարբերակի սխալը տեղի է ունենում մինչև հարցումը պրոքսիին հասնելը։ Ստուգեք տեղադրված փաթեթի պահանջները՝ ոչ թե ենթադրեք, որ ամեն Node գործարկում է նորագույն Undici-ն։
Մեկ agent-ը կարող է սպասարկել կրկնվող հարցումները
Կարճ ծրագիրը վերջում փակում է dispatcher-ը։ Եթե աշխատող հավելվածը նույն վերջնակետով մի քանի հարցում է ուղարկում, agent-ը պահեք այդ աշխատանքի համար և փակեք աշխատանքն ավարտվելիս։ Ամեն URL-ի համար agent ստեղծելն ու փակելը խանգարում է կապերի օգտակար կրկնօգտագործմանը։
Գլոբալ dispatcher-ը հարմար է միայն նախատեսված ավելի լայն փոփոխության դեպքում։ Այն բացահայտ փոխանցելը հեշտացնում է պրոքսի IP-ի փորձը՝ չփոխելով այլ բաղադրիչի ելքային հարցումները։
Դիտեք պատասխանը և ձախողման փուլը
Fetch-ը HTTP սխալի ամեն կարգավիճակ չի համարում մերժված Promise։ 403 կամ 429 կարող է լինել պրոքսիով տեղափոխված կայքի իրական պատասխան։ Կապի կամ թունելի սխալը կարող է մերժել հարցումը մինչև պատասխանի օբյեկտի ստեղծումը։ Կարգավիճակը կարդացեք կանչի նետած սխալներից առանձին։
Եթե նույնականացում է պետք, Undici-ի ProxyAgent-ը կոնստրուկտորի ընտրանքներ է տալիս։ Պրոքսիի լիազորման վերնագիր մի ավելացրեք կայքի հարցման վերնագրերին․ agent-ը մշակում է կապի այլ հատված։