สำหรับการเรียก 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 และเลือก agent ระดับล่างสำหรับ URL นั้น

สำหรับเส้นทางคงที่ที่แอปพลิเคชันเป็นเจ้าของ ให้แทนที่การเลือกผ่านออบเจ็กต์ออปชันนั้น:

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

callback แบบค่าคงที่ไม่ใช้การตัดสินใจ NO_PROXY ของสภาพแวดล้อมเริ่มต้น เมื่อแทนที่มัน ให้ใช้ข้อยกเว้นแบบตรงที่จำเป็นในตัวเลือกของคุณ

สำหรับการเรียกบริการสาธารณะที่ได้รับอนุญาต รายการ proxy ฟรี ให้ผู้สมัครสำหรับ proxyUrl; เลือกโปรโตคอลที่ agent รองรับ scheme ของ proxy URL ที่ส่งคืนระบุโปรโตคอลของตัวกลาง; https.get ยังคงระบุบริการจริง เก็บ agent ไว้สำหรับภาระงานของมันและทำลายเมื่อปิด

listener ของ Express รับคำขอขาเข้าและไม่ได้กำหนดค่าการเชื่อมต่อขาออกนี้ fetch ที่อิง Undici ก็ใช้อินพุตการขนส่งอื่นเช่นกัน: fetch ของ Undici กับ ProxyAgent รับ dispatcher โดยใช้รีลีสแพ็กเกจที่เข้ากันได้กับ runtime ของ Node

บทความที่เกี่ยวข้อง