WeProxy
Node.js

Язык / SDK

Настройка WeProxy proxy для Node.js

Поддержка proxy в Node.js зависит от версии и HTTP-клиента. В свежих сборках можно включить NODE_USE_ENV_PROXY; для явного контроля удобнее Undici ProxyAgent.

Поддержка прокси в приложениях Node.js зависит от версии Node и используемого HTTP-клиента. В актуальных выпусках Node.js встроенный fetch может поддерживать прокси через переменные окружения. Для более явного управления на уровне запроса можно использовать класс ProxyAgent из Undici — проекта Node.js.

Схема подключения WeProxy

Добавьте данные WeProxy в переменные окружения

Не записывайте реальные учётные данные в исходный код или Git-репозиторий.

macOS/Linux:

export WEPROXY_HOST="PROXY_HOST"
export WEPROXY_PORT="PROXY_PORT"
export WEPROXY_USERNAME="PROXY_USERNAME"
export WEPROXY_PASSWORD="PROXY_PASSWORD"

PowerShell:

$env:WEPROXY_HOST="PROXY_HOST"
$env:WEPROXY_PORT="PROXY_PORT"
$env:WEPROXY_USERNAME="PROXY_USERNAME"
$env:WEPROXY_PASSWORD="PROXY_PASSWORD"

Поддержка прокси из окружения в актуальных выпусках Node.js

Начиная с Node.js 24.0.0 и 22.21.0, NODE_USE_ENV_PROXY=1 может читать переменные HTTP_PROXY, HTTPS_PROXY и NO_PROXY при запуске. Убедитесь, что ваша версия поддерживает эту функцию.

Пример для macOS/Linux:

export HTTPS_PROXY="http://PROXY_USERNAME:PROXY_PASSWORD@PROXY_HOST:PROXY_PORT"
export HTTP_PROXY="$HTTPS_PROXY"
export NODE_USE_ENV_PROXY=1
node app.js

Альтернативно можно запустить Node с параметром --use-env-proxy:

node --use-env-proxy app.js

Пример app.js:

const response = await fetch('https://api.ipify.org?format=json');

if (!response.ok) {
  throw new Error(`HTTP ${response.status}`);
}

console.log(await response.json());

Явная настройка через Undici ProxyAgent

Сначала установите актуальный пакет Undici:

npm install undici

Затем сформируйте адрес прокси из переменных окружения:

import { ProxyAgent, fetch } from 'undici';

const {
  WEPROXY_HOST,
  WEPROXY_PORT,
  WEPROXY_USERNAME,
  WEPROXY_PASSWORD,
} = process.env;

const username = encodeURIComponent(WEPROXY_USERNAME);
const password = encodeURIComponent(WEPROXY_PASSWORD);
const proxyUrl = `http://${username}:${password}@${WEPROXY_HOST}:${WEPROXY_PORT}`;
const dispatcher = new ProxyAgent(proxyUrl);

const response = await fetch('https://api.ipify.org?format=json', {
  dispatcher,
  signal: AbortSignal.timeout(30_000),
});

if (!response.ok) {
  throw new Error(`HTTP ${response.status}`);
}

console.log(await response.json());
await dispatcher.close();

Ошибки прокси в Node.js

Переменные окружения не действуют

Проверьте версию Node командой node --version. В старых выпусках встроенный fetch может не использовать прокси из окружения автоматически; предпочтите метод ProxyAgent.

407 Proxy Authentication Required

Убедитесь, что учётные данные актуальны и специальные символы закодированы через encodeURIComponent.

Ошибка сертификата

Не отключайте проверку TLS. Проверьте цепочку сертификатов используемого прокси и цели. NODE_TLS_REJECT_UNAUTHORIZED=0 не является безопасным решением для продакшена.

Источники

Другие интеграции

Смотрите другой инструмент?

Начать

Подключитесь к WeProxy сейчас

Создайте аккаунт, сразу используйте 100 МБ бесплатного residential-трафика и повторите шаги выше в своей среде.