Начало работы с NodeJs Fetch API

Fetch API — это современный интерфейс для получения ресурсов в веб-браузере. Он предоставляет способ делать HTTP-запросы из JavaScript и обрабатывать ответы с помощью промисов. Fetch API также доступен в Node.js через модуль node-fetch. В этой статье мы рассмотрим, как использовать Fetch API в Node.js.

Установка node-fetch:

Прежде чем мы начнем использовать Fetch API в Node.js, нам нужно установить модуль node-fetch. Это можно сделать с помощью npm, выполнив следующую команду:

npm install node-fetch

После того, как модуль установлен, мы можем запросить его в нашем скрипте Node.js следующим образом:

const fetch = require('node-fetch');

Отправка запроса на выборку:

Теперь, когда у нас установлен и необходим модуль node-fetch, мы можем использовать Fetch API для выполнения HTTP-запросов. Самый простой пример создания запроса показан ниже:

fetch('https://jsonplaceholder.typicode.com/posts')
  .then(response => response.json())
  .then(data => console.log(data))
  .catch(error => console.error(error));

В этом примере мы отправляем запрос GET к API JSONPlaceholder и записываем данные ответа в консоль. Функция fetch возвращает Promise, который разрешается в объект Response. Затем мы можем использовать метод json() объекта Response для анализа ответа как JSON. Второй блок then() выводит проанализированные данные на консоль. Наконец, блок catch() регистрирует любые ошибки, возникающие во время запроса.

Передача параметров для получения:

Функция fetch принимает второй необязательный аргумент, который можно использовать для передачи параметров в запрос. Эти параметры можно использовать для установки заголовков, установки метода запроса и многого другого. Вот пример, который задает метод запроса POST и включает полезную нагрузку JSON в тело запроса:

const options = {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    title: 'foo',
    body: 'bar',
    userId: 1
  })
};

fetch('https://jsonplaceholder.typicode.com/posts', options)
  .then(response => response.json())
  .then(data => console.log(data))
  .catch(error => console.error(error));

В этом примере мы устанавливаем метод запроса POST и включаем полезную нагрузку JSON в тело запроса. Объект заголовков используется для установки заголовка Content-Type в application/json, который сообщает серверу, что тело запроса находится в формате JSON.

Обработка ошибок:

Fetch API возвращает обещание, которое разрешается в объект Response, даже если ответ указывает на ошибку. Это означает, что нам нужно проверять код состояния ответа и обрабатывать ошибки вручную. Вот пример того, как обрабатывать ошибки:

fetch('https://jsonplaceholder.typicode.com/posts/invalid-url')
  .then(response => {
    if (!response.ok) {
      throw new Error(response.statusText);
    }
    return response.json();
  })
  .then(data => console.log(data))
  .catch(error => console.error(error));

В этом примере мы отправляем запрос на недопустимый URL-адрес. Первый блок then() проверяет код состояния ответа, используя свойство ok объекта Response. Если код состояния не находится в диапазоне 200–299, выдается ошибка с текстом ответа statusText. Второй блок then() выполняется только в том случае, если код состояния указывает на успех. Наконец, любые ошибки, возникающие во время запроса, перехватываются и выводятся на консоль.

Вывод:

Fetch API — это мощный инструмент для выполнения HTTP-запросов в Node.js.
Для дальнейшего чтения:https://www.npmjs.com/package/node-fetch