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

Axios - это HTTP-клиент, основанный на промисах, который упрощает выполнение HTTP-запросов в Node.js. Он оптимизирует такие задачи, как отправка GET и POST запросов, обработка ответов и управление ошибками. В этом руководстве мы рассмотрим, как использовать Axios в Node.js с практическими примерами кода.
Ключевые моменты
- Axios предоставляет простой API для выполнения HTTP-запросов в Node.js.
- Он использует промисы для более чистого асинхронного кода.
- Предлагает простые механизмы для обработки различных сценариев ошибок.
Настройка Axios в Node.js
Чтобы начать работу с Axios в вашем проекте Node.js:
-
Инициализируйте ваш проект (если вы еще этого не сделали):
npm init -y
-
Установите Axios:
npm install axios
-
Подключите 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.