12k
All articles

Как использовать Axios в Node.js (с примерами кода)

Практические примеры кода для отправки GET и POST запросов через Axios в Node.js, обработки структурированных ответов и грамотного управления ошибками.

OpenReplay Team
OpenReplay Team
Как использовать Axios в Node.js (с примерами кода)

Axios - это HTTP-клиент, основанный на промисах, который упрощает выполнение HTTP-запросов в Node.js. Он оптимизирует такие задачи, как отправка GET и POST запросов, обработка ответов и управление ошибками. В этом руководстве мы рассмотрим, как использовать Axios в Node.js с практическими примерами кода.

Ключевые моменты

  • Axios предоставляет простой API для выполнения HTTP-запросов в Node.js.
  • Он использует промисы для более чистого асинхронного кода.
  • Предлагает простые механизмы для обработки различных сценариев ошибок.

Настройка Axios в Node.js

Чтобы начать работу с Axios в вашем проекте Node.js:

  1. Инициализируйте ваш проект (если вы еще этого не сделали):

    npm init -y
    
  2. Установите Axios:

    npm install axios
    
  3. Подключите Axios в вашем приложении:

    const axios = require('axios');
    

Выполнение GET-запросов

GET-запрос извлекает данные из указанной конечной точки. Вот как выполнить GET-запрос с помощью Axios:

const axios = require('axios');

async function fetchData() {
  try {
    const response = await axios.get('https://jsonplaceholder.typicode.com/posts/1');
    console.log(response.data);
  } catch (error) {
    console.error('Ошибка при получении данных:', error);
  }
}

fetchData();

Объяснение:

  • Определяет асинхронную функцию fetchData.
  • Использует await для выполнения GET-запроса через Axios.
  • Выводит полученные данные в консоль.
  • Обрабатывает ошибки с помощью try...catch.

Выполнение POST-запросов

POST-запрос отправляет данные на сервер для создания нового ресурса. Вот как выполнить POST-запрос:

const axios = require('axios');

async function createPost() {
  try {
    const response = await axios.post('https://jsonplaceholder.typicode.com/posts', {
      title: 'Новый пост',
      body: 'Это содержимое нового поста.',
      userId: 1,
    });
    console.log('Пост создан:', response.data);
  } catch (error) {
    console.error('Ошибка при создании поста:', error);
  }
}

createPost();

Объяснение:

  • Определяет асинхронную функцию createPost.
  • Использует await с axios.post(), передавая конечную точку и объект данных.
  • Выводит созданный пост.
  • Корректно обрабатывает ошибки.

Обработка ответов и ошибок

Axios предоставляет структурированный способ обработки ответов и ошибок. Объект ответа включает такие свойства, как data, status и headers.

Вот как обрабатывать различные типы ошибок:

const axios = require('axios');

async function fetchData() {
  try {
    const response = await axios.get('https://jsonplaceholder.typicode.com/posts/1');
    console.log('Данные:', response.data);
    console.log('Статус:', response.status);
  } catch (error) {
    if (error.response) {
      // Сервер ответил кодом состояния вне диапазона 2xx
      console.error('Данные ошибки:', error.response.data);
      console.error('Статус ошибки:', error.response.status);
    } else if (error.request) {
      // Ответ не получен
      console.error('Ответ не получен:', error.request);
    } else {
      // Ошибка при настройке запроса
      console.error('Ошибка:', error.message);
    }
  }
}

fetchData();

Объяснение:

  • Выводит данные и статус ответа при успешном выполнении.
  • Различает:
    • Ошибки с ответами (error.response)
    • Ошибки без ответа (error.request)
    • Другие ошибки, связанные с Axios (error.message)

Часто задаваемые вопросы

Может ли Axios использоваться как в Node.js, так и в браузерных средах?

Да, Axios является изоморфным и может работать в обеих средах.

Как Axios обрабатывает данные JSON?

Axios автоматически преобразует данные JSON как для запросов, так и для ответов, устраняя необходимость в ручном парсинге.

Возможно ли установить пользовательские заголовки с помощью Axios?

Да, вы можете установить пользовательские заголовки, передав объект `headers` в конфигурации запроса.

Заключение

Axios упрощает HTTP-запросы в Node.js, предлагая чистый и лаконичный API. Его поддержка промисов позволяет эффективно обрабатывать асинхронные операции. Понимая, как выполнять GET и POST запросы, а также обрабатывать ответы и ошибки, вы можете эффективно интегрировать Axios в ваши приложения Node.js.

Listen to your bugs 🧘, with OpenReplay

See how users use your app and resolve issues fast.
Loved by thousands of developers

We use cookies to improve your experience. By using our site, you accept cookies.