Axios — HTTP-клиент для JavaScript (Node.js)

Онлайн-тренажер Python для начинающих

Изучайте Python легко и без перегрузки теорией. Решайте практические задачи с автоматической проверкой, получайте подсказки на русском языке и пишите код прямо в браузере — без необходимости что-либо устанавливать.

Начать курс

Что такое Axios?

Axios — это популярный HTTP-клиент для JavaScript, работающий как в браузере, так и в среде Node.js. Он основан на промисах (Promise) и предоставляет удобный API для выполнения HTTP-запросов. Библиотека автоматически обрабатывает JSON, поддерживает перехватчики (interceptors), отмену запросов и защиту от CSRF.

Зачем нужен Axios?

В отличие от встроенного fetch, Axios предлагает более богатый функционал «из коробки»: автоматическая трансформация данных, прогресс-бары для загрузки, таймауты, повторные попытки и работа с устаревшими браузерами. Для Node.js-разработчиков это незаменимый инструмент для взаимодействия с REST API, микросервисами и внешними сервисами.

Установка

Установите библиотеку через npm или yarn:

npm install axios

Или для глобального использования:

npm install -g axios

Основные функции

  • Поддержка всех HTTP методов: GET, POST, PUT, DELETE, PATCH и др.
  • Автоматическая сериализация/десериализация JSON.
  • Перехватчики запросов и ответов для логирования, аутентификации и обработки ошибок.
  • Отмена запросов через AbortController (современный API) или CancelToken (устаревший).
  • Таймауты и повторные попытки (через плагины или ручную настройку).
  • Загрузка файлов с прогрессом (через onUploadProgress).

Пример кода на Node.js

const axios = require('axios');

async function getPost(id) {
  try {
    const response = await axios.get(`https://jsonplaceholder.typicode.com/posts/${id}`);
    console.log('Данные:', response.data);
  } catch (error) {
    console.error('Ошибка:', error.message);
  }
}

getPost(1);

// POST-запрос с данными
const newPost = {
  title: 'Заголовок',
  body: 'Текст поста',
  userId: 1,
};

axios.post('https://jsonplaceholder.typicode.com/posts', newPost)
  .then(res => console.log('Создано:', res.data))
  .catch(err => console.error('Ошибка:', err));

Когда использовать Axios

Axios идеален для проектов, где требуется надежный HTTP-клиент с расширенными возможностями: корпоративные приложения, микросервисная архитектура, интеграция с внешними API, а также для случаев, когда нужна обратная совместимость со старыми версиями Node.js (до 18.x). Если вы предпочитаете легковесные решения, рассмотрите node-fetch или встроенный fetch в Node.js 18+.

Заключение

Axios остается стандартом де-факто для HTTP-запросов в экосистеме JavaScript. Благодаря простоте, гибкости и обширному сообществу, эта библиотека подходит как для быстрых прототипов, так и для крупных продакшн-систем.

Рекомендаций