Как подключить прокси в Node.js?
Node.js — среда выполнения для JavaScript, которая позволяет запускать JavaScript-код вне браузера. С ее помощью создают серверы и серверные приложения. В статье расскажем как подключить прокси в Node.js и зачем это нужно.
Зачем нужны прокси для Node.js?
Когда разрабатывают приложения на Node.js, возникает необходимость подключаться к ресурсам, сторонним API и другим сервисам. В некоторых случаях прямой доступ затруднен, либо нежелателен. Вот несколько ситуаций, когда использование прокси-сервера необходимо:
- В некоторых организациях доступ к интернету осуществляется только через прокси-сервер. Без поддержки прокси приложение не сможет взаимодействовать с ресурсами.
- Прокси-серверы полезны для тестирования приложений в различных сетевых условиях, например, эмуляции низкой скорости соединения или высокого уровня задержек.
- Если хотите защитить сервер от прямых запросов и скрыть реальный IP-адрес, прокси станет отличным решением.
Использование прокси в Node.js расширяет возможности приложения и повышает его безопасность и производительность. Теперь, перейдем к настройке прокси в Node.js. Начнем с самого начала, чтобы все было понятно даже новичкам.
Установка Node.js
Чтобы начать работу с Node.js, сначала нужно его установить. Перейдите на официальный сайт Node.js и скачайте последнюю версию для операционной системы (Windows, macOS, Linux).
Что такое терминал?
Терминал (или командная строка) — программа, которая позволяет вводить команды для выполнения задач на компьютере. На 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
Эта команда скачает и установит необходимые библиотеки в ваш проект.
Шаг 2: Создадим рабочую папку и файл для написания кода
В терминале создайте новую папку для вашего проекта и перейдите в нее:
mkdir my-proxy-project
cd my-proxy-project
Эти команды создадут новую папку в разделе “Мои документы” и перейдут туда для работы с ней. Далее создадим новый файл index.js:
echo > index.js
Вот он появился:
Шаг 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
Эта команда запустит ваш скрипт. Если в коде все правильно, то увидите ответ от сервера, к которому обращались через прокси. Вот что мы получили, запустив наш код:
Бинго!
Резюмируем: что мы сделали?
Код выполняет GET-запрос по URL (http://example.com) с использованием прокси-сервера (proxyUrl).
Когда получаем ответ от сервера, то выводим в консоль HTML-код страницы http://example.com.
Если вместо этого появляется ошибка, то вы неправильно ввели данные прокси. Другой ошибки в коде не может быть.
Теперь вы знаете, что такое Node.js, как установить необходимые инструменты, создать проект и отправить HTTP-запрос через прокси-сервер. Надеемся, что это руководство было полезным и понятным.