عمل کے ماحول کو راستہ چننا ہو تو EnvHttpProxyAgent استعمال کریں۔ اینڈپوائنٹ کلائنٹ ترتیب کا حصہ ہو تو واضح Undici ProxyAgent لیں۔ اسے اصل درخواست میں دیں؛ صرف agent بنانے سے کوئی fetch کال نہیں بدلتی۔

import { EnvHttpProxyAgent, fetch } from 'undici';

const dispatcher = new EnvHttpProxyAgent();

try {
  const response = await fetch("https://example.com/", {
    dispatcher,
    signal: AbortSignal.timeout(15000),
  });
  console.log(response.status);
  await response.arrayBuffer();
} finally {
  await dispatcher.close();
}

Undici دستیاب والے ES ماڈیول ماحول میں اسے proxy-check.mjs کے نام سے رکھیں۔ یہ POSIX آغاز دونوں پراکسی راستے اور خالی بائی پاس فہرست دیتا ہے:

http_proxy=http://203.0.113.10:8080 \
https_proxy=http://203.0.113.10:8080 \
no_proxy= \
node proxy-check.mjs

دستاویزی اینڈپوائنٹ کی جگہ اپنی HTTP پراکسی یا HTTP پراکسی فہرست کا امیدوار دیں۔ قدروں کی تفویض اسی کال کے لیے ہے؛ دوسرے shell کی ساخت الگ ہے۔

Undici 8.12.3 میں چھوٹے حروف والے http_proxy، https_proxy اور no_proxy کو بڑے حروف کے ہم منصب پر ترجیح ہے جب دونوں موجود ہوں۔ HTTP اور HTTPS منزلیں اپنی ترتیبات چنتی ہیں۔ صرف HTTP ترتیب HTTPS کا متبادل بھی دیتی ہے؛ صرف HTTPS ترتیب HTTP نہیں دیتی۔ دوسرے کلائنٹ کا ALL_PROXY رواج لاگو نہ سمجھیں۔

ان پٹیہ ورژن کب استعمال کرتا ہے
HTTP/HTTPS پراکسی ماحولagent بنتے وقت منتخب ہوتا ہے۔ یہ اینڈپوائنٹس بدلنے کے بعد نیا dispatcher بنائیں۔
ماحول کا no_proxyدرخواستیں بھیجتے وقت دوبارہ دیکھا جاتا ہے۔
کنسٹرکٹر کا noProxyبعد کی ماحول تبدیلیوں کی پیروی کرنے کے بجائے بائی پاس پالیسی واضح طور پر مقرر کرتا ہے۔

بائی پاس ہوسٹ اور اختیاری پورٹ سے مل سکتا ہے؛ اکیلا ستارہ ہر درخواست کے لیے پراکسی سے گزرنے کو چھوڑتا ہے۔ پراکسی ٹریفک نہ دیکھے تو منزل کا ملنا جانچیں۔

Windows پر مرکزی عمل ماحول کے نام میں بڑے چھوٹے حروف الگ نہیں کرتا، لہٰذا HTTP_PROXY اور http_proxy آزاد قدریں نہیں۔ Node Worker کے ماحول کی نقول میں دستاویزی case-sensitive فرق ہے۔ دونوں ہجے مقرر کر کے ترجیح آزمانے سے پہلے اسے دیکھیں۔ مثال کام کے بعد dispatcher بند کرتی ہے؛ بار بار درخواستوں کو اسی محفوظ اینڈپوائنٹ پالیسی کی ضرورت ہو تو اسے قائم رکھیں۔

متعلقہ مضامین