Avatar ·

Как сделать HTTP запрос в JavaScript?

Всем привет! Подскажите, пожалуйста, как правильно выполнить HTTP-запрос на Node.js (версия 18).

Я пишу небольшой скрипт для парсинга данных с публичного API. Мне нужно отправить GET-запрос и получить JSON-ответ. Пробовал использовать встроенный модуль http, но столкнулся с проблемой: данные приходят частями, и приходится собирать их вручную через события data и end. Это кажется неудобным и громоздким.

const http = require('http');

http.get('http://example.com/api/data', (res) => {
  let data = '';
  res.on('data', (chunk) => { data += chunk; });
  res.on('end', () => {
    console.log(JSON.parse(data));
  });
});

Слышал, что есть библиотеки вроде axios или node-fetch, но хотелось бы понять, какой подход сейчас считается стандартным в современном Node.js? Нужно ли обязательно ставить сторонние пакеты, или есть более элегантное решение на чистом Node?

Ожидаю получить пример кода, который делает GET-запрос, обрабатывает ошибки (например, таймаут или неверный URL) и возвращает JSON. Также интересует, как правильно обрабатывать POST-запросы с телом в формате JSON.

Заранее спасибо за помощь!