Back

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

Как использовать 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 является изоморфным и может работать в обеих средах.

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

Да, вы можете установить пользовательские заголовки, передав объект `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