Как подключить прокси в Node.js?

node jsNode.js — среда выполнения для JavaScript, которая позволяет запускать JavaScript-код вне браузера. С ее помощью создают серверы и серверные приложения. В статье расскажем как подключить прокси в Node.js и зачем это нужно.

Зачем нужны прокси для Node.js?

Когда разрабатывают приложения на Node.js, возникает необходимость подключаться к ресурсам, сторонним API и другим сервисам. В некоторых случаях прямой доступ затруднен, либо нежелателен. Вот несколько ситуаций, когда использование прокси-сервера необходимо:

 
  • В некоторых организациях доступ к интернету осуществляется только через прокси-сервер. Без поддержки прокси приложение не сможет взаимодействовать с ресурсами.
  • Прокси-серверы полезны для тестирования приложений в различных сетевых условиях, например, эмуляции низкой скорости соединения или высокого уровня задержек.
  • Если хотите защитить сервер от прямых запросов и скрыть реальный IP-адрес, прокси станет отличным решением.

Использование прокси в Node.js расширяет возможности приложения и повышает его безопасность и производительность. Теперь, перейдем к настройке прокси в Node.js. Начнем с самого начала, чтобы все было понятно даже новичкам.

Установка Node.js

Чтобы начать работу с Node.js, сначала нужно его установить. Перейдите на официальный сайт Node.js и скачайте последнюю версию для операционной системы (Windows, macOS, Linux).

node js

Что такое терминал?

Терминал (или командная строка) — программа, которая позволяет вводить команды для выполнения задач на компьютере. На Windows это «Командная строка» или «PowerShell», на macOS — «Terminal», на Linux — тоже «Terminal».

Как открыть терминал?

Windows. Нажмите Win + R, введите cmd и нажмите Enter. Это откроет Командную строку.
macOS. Нажмите Cmd + Space, введите Terminal и нажмите Enter.
Linux. Найдите «Terminal» в меню приложений и откройте его.

Шаг 1: Установка необходимых инструментов

Отметим, что все команды будут адаптированы для Windows. Откройте терминал и выполните команду для установки axios и http-proxy-agent:

npm install axios https-proxy-agent

Эта команда скачает и установит необходимые библиотеки в ваш проект.

node.js прокси

Шаг 2: Создадим рабочую папку и файл для написания кода

В терминале создайте новую папку для вашего проекта и перейдите в нее:

mkdir my-proxy-project
cd my-proxy-project

Эти команды создадут новую папку в разделе “Мои документы” и перейдут туда для работы с ней. Далее создадим новый файл index.js:

echo > index.js

Вот он появился:

node настройка прокси

Шаг 3: Напишем код

Откройте свежесозданный файл index.js в любом текстовом редакторе (стандартный Notepad подойдет) и добавляйте строки кода:

const axios = require('axios');
const { HttpsProxyAgent } = require('https-proxy-agent');

Первой командой подключим библиотеку axios для выполнения HTTP-запросов из JavaScript-кода. Она позволяет отправлять запросы на сервер и обрабатывать ответы. Второй командой подключим библиотеку для работы с прокси.

Далее укажем данные прокси

const proxyUrl = 'http://your-proxy-server.com:8080';

Если используете приватный прокси-сервер, который арендовали у поставщика, то нужно добавить кроме IP и порта, еще логин и пароль. В таком случае эта строка будет такой:

const proxyUrl = 'http://username:password@your-proxy-server.com:8080'

То есть:

username — логин, затем password — пароль, потом знак@IP:порт

Далее пропишем адрес целевого сервера, к которому хотим обратиться:

const targetUrl = 'http://example.com';

Для примера, мы обратимся к example.com. Это сайт-пустышка который используют тестировщики.

Создаем агент прокси:

const agent = new HttpsProxyAgent(proxyUrl);

Даем команду на выполнение запроса через прокси:

axios.get(targetUrl, {
    httpAgent: agent,
    httpsAgent: agent
})
.then(response => {
    console.log(response.data);  // Тут выводим ответ сервера
})
.catch(error => {
    console.error('Ошибка:', error.message);
});

Если что-то пойдет не так, программа выдаст сообщение об ошибке.

В итоге у вас получился следующий код:

const axios = require('axios');
const { HttpsProxyAgent } = require('https-proxy-agent');

const proxyUrl = 'http://user9**38:nyp*os@20*.126.105.*0:6660';
const targetUrl = 'http://example.com';

const agent = new HttpsProxyAgent(proxyUrl);

axios.get(targetUrl, {
    httpAgent: agent,
    httpsAgent: agent
})
.then(response => {
    console.log(response.data);
})
.catch(error => {
    console.error('Ошибка:', error.message);
});

Сохраните текстовый файл с кодом. Сейчас запустим его.

Шаг 4: Запускаем код

Пришло время запустить код через cmd. Для этого выполните команду:

node index.js

Эта команда запустит ваш скрипт. Если в коде все правильно, то увидите ответ от сервера, к которому обращались через прокси. Вот что мы получили, запустив наш код:

node js код

Бинго!

Резюмируем: что мы сделали?

Код выполняет GET-запрос по URL (http://example.com) с использованием прокси-сервера (proxyUrl).

Когда получаем ответ от сервера, то выводим в консоль HTML-код страницы http://example.com. 

Если вместо этого появляется ошибка, то вы неправильно ввели данные прокси. Другой ошибки в коде не может быть.

Теперь вы знаете, что такое Node.js, как установить необходимые инструменты, создать проект и отправить HTTP-запрос через прокси-сервер. Надеемся, что это руководство было полезным и понятным.