لطلب HTTPS من جهة Express يستخدم سياسة proxy الخاصة بالبيئة:

import https from 'node:https';
import { ProxyAgent } from 'proxy-agent';

const agent = new ProxyAgent();
const request = https.get('https://service.example/data', { agent }, response => {
  console.log(response.statusCode);
  response.resume();
});
request.on('error', error => console.error(error.message));

يقبل مُنشئ ProxyAgent الحالي كائن خيارات. وبدون تجاوز يقرأ سياسة البيئة المدعومة عبر proxy-from-env ويختار الوكيل الأدنى للرابط.

لمسار ثابت يملكه التطبيق، استبدل الاختيار عبر كائن الخيارات ذلك:

new ProxyAgent({ getProxyForUrl: () => proxyUrl })

لا يطبّق callback الثابت قرارات NO_PROXY الخاصة بالبيئة الافتراضية. نفّذ الاستثناءات المباشرة المطلوبة في محدِّدك عند استبداله.

لطلب خدمة عامة مسموح به، تقدّم قائمة البروكسي المجاني مرشحين لـ proxyUrl؛ اختر بروتوكولًا يدعمه الوكيل. يحدد مخطط عنوان proxy المُعاد البروتوكول الوسيط؛ ويبقى https.get يسمّي الخدمة الحقيقية. أبقِ الوكيل لحمل عمله وأتلفه عند الإغلاق.

يستقبل مستمع Express الطلبات الواردة ولا يضبط هذا الاتصال الصادر. كما يستخدم fetch القائم على Undici مُدخل نقل آخر: fetch في Undici مع ProxyAgent يأخذ dispatcher، بإصدار حزمة متوافق مع بيئة تشغيل Node.

مقالات ذات صلة