Для HTTPS-вызова на стороне Express, использующего прокси-политику окружения:

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 и выбирает агент нижнего уровня для URL.

Для фиксированного маршрута, принадлежащего приложению, замените выбор через этот объект параметров:

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

Постоянный callback не применяет решения NO_PROXY окружения по умолчанию. Заменяя его, реализуйте в своём селекторе необходимые прямые исключения.

Для разрешённого вызова публичного сервиса список бесплатных прокси поставляет кандидатов для proxyUrl; выберите протокол, который поддерживает агент. Схема возвращённого прокси-URL указывает протокол посредника; https.get всё равно называет реальный сервис. Держите агент для его нагрузки и уничтожайте при завершении.

Слушатель Express принимает входящие запросы и не настраивает это исходящее соединение. fetch на основе Undici тоже использует другой вход транспорта: fetch Undici с ProxyAgent принимает dispatcher, используя версию пакета, совместимую со средой выполнения Node.

Похожие статьи