Рубрики
Без рубрики

HTTP-запросы в узле с использованием Axios

Axios – это очень удобная библиотека JavaScript для выполнения HTTP-запросов в Node.js

  • Вступление
  • Видеоурок
  • Установка
  • API Аксиомы
  • ПОЛУЧАТЬ запросы
  • Добавьте параметры для получения запросов
  • ОТПРАВЛЯТЬ Запросы

Вступление

Axios – это очень популярная библиотека JavaScript, которую вы можете использовать для выполнения HTTP-запросов, которая работает как в браузере, так и Node.js платформы.

Он поддерживает все современные браузеры, включая поддержку IE8 и выше.

Он основан на обещаниях, и это позволяет нам писать асинхронный/ожидающий код для очень простого выполнения запросов XHR.

Использование Axios имеет немало преимуществ по сравнению с собственным API выборки:

  • поддерживает старые браузеры (для выборки требуется заполнение)
  • есть способ прервать запрос
  • есть способ установить время ожидания ответа
  • имеет встроенную защиту CSRF
  • поддерживает прогресс загрузки
  • выполняет автоматическое преобразование данных JSON
  • работает в Node.js

Видеоурок

Посмотрите это видео, где я создаю экспресс-сервер, который предлагает конечную точку отправки, и я делаю к нему запрос Axios для отправки данных:

Установка

Аксиомы могут быть установлены с помощью npm:

npm install axios

или пряжа:

yarn add axios

или включите его на своей странице, используя unpkg.com:

API Аксиомы

Вы можете запустить HTTP-запрос с оси объект:

Я использую foo и бар как случайные имена . Введите любое имя, чтобы заменить их.

axios({
  url: 'https://dog.ceo/api/breeds/list/all',
  method: 'get',
  data: {
    foo: 'bar'
  }
})

но для удобства вы, как правило, будете использовать

  • аксиос.получить()
  • axios.сообщение()

(как в jQuery, вы бы использовали $.get () и $.post () вместо $.ajax() )

Axios предлагает методы для всех HTTP-глаголов, которые менее популярны, но все еще используются:

  • аксиос.удалить()
  • axios.положить()
  • axios.патч()
  • axios.параметры()

и метод получения HTTP-заголовков запроса, отбрасывающий тело:

  • аксиос.голова()

ПОЛУЧАТЬ запросы

Одним из удобных способов использования Axios является использование современного (ES2017) синтаксиса async/await.

Это Node.js пример запрашивает Dog API , чтобы получить список всех пород собак, используя axios.get() , и он их подсчитывает:

const axios = require('axios')

const getBreeds = async () => {
  try {
    return await axios.get('https://dog.ceo/api/breeds/list/all')
  } catch (error) {
    console.error(error)
  }
}

const countBreeds = async () => {
  const breeds = await getBreeds()

  if (breeds.data.message) {
    console.log(`Got ${Object.entries(breeds.data.message).length} breeds`)
  }
}

countBreeds()

Если вы не хотите использовать async/await, вы можете использовать синтаксис обещаний:

const axios = require('axios')

const getBreeds = () => {
  try {
    return axios.get('https://dog.ceo/api/breeds/list/all')
  } catch (error) {
    console.error(error)
  }
}

const countBreeds = async () => {
  const breeds = getBreeds()
    .then(response => {
      if (response.data.message) {
        console.log(
          `Got ${Object.entries(response.data.message).length} breeds`
        )
      }
    })
    .catch(error => {
      console.log(error)
    })
}

countBreeds()

Добавьте параметры для получения запросов

Ответ GET может содержать параметры в URL-адресе, например: https://site.com/?foo=bar .

С помощью Axios вы можете выполнить это, используя этот URL-адрес:

axios.get('https://site.com/?foo=bar')

или вы можете использовать свойство params в параметрах:

axios.get('https://site.com/', {
  params: {
    foo: 'bar'
  }
})

ОТПРАВЛЯТЬ Запросы

Выполнение запроса POST аналогично выполнению запроса GET, но вместо axios.get , вы используете axios.post :

axios.post('https://site.com/')

Объект, содержащий параметры POST, является вторым аргументом:

axios.post('https://site.com/', {
  foo: 'bar'
})

Оригинал: “https://flaviocopes.com/node-axios/”