HTTP-Client für JavaScript (Node.js): Top-Bibliotheken für die Netzwerkarbeit
Moderne Entwicklung mit Node.js kommt selten ohne Interaktion mit externen Diensten aus. Ob REST API, GraphQL-Endpunkte oder Daten-Streaming – Sie benötigen einen zuverlässigen HTTP-Client. In diesem Artikel analysieren wir die besten Bibliotheken für die Ausführung von HTTP-Anfragen in der Node.js-Umgebung, ihre Besonderheiten und Anwendungsbeispiele.
1. Axios – die universelle Wahl
Axios ist der beliebteste HTTP-Client für Node.js und Browser. Er basiert auf Promises, unterstützt Interceptors, automatische JSON-Transformation und das Abbrechen von Anfragen.
Installation
npm install axiosBeispiel einer GET-Anfrage
const axios = require('axios');
async function getUsers() { try { const response = await axios.get('https://jsonplaceholder.typicode.com/users'); console.log(response.data); } catch (error) { console.error('Fehler:', error.message); }}
getUsers();Besonderheiten:
- Unterstützung von
CancelTokenzum Abbrechen von Anfragen - Automatische Behandlung von HTTP-Fehlern (Status 4xx und 5xx)
- Funktioniert sowohl auf dem Server als auch im Browser
- Unterstützung des Upload-/Download-Fortschritts
2. Got – Leistung und Flexibilität
Got ist eine leichte und schnelle Bibliothek, die speziell für Node.js entwickelt wurde. Sie bietet eine umfangreiche API und hervorragende Leistung durch die direkte Nutzung der http- und https-Module.
Installation
npm install gotBeispiel einer POST-Anfrage
const got = require('got');
async function createPost() { try { const response = await got.post('https://jsonplaceholder.typicode.com/posts', { json: { title: 'Neuer Beitrag', body: 'Inhalt des Beitrags', userId: 1 }, responseType: 'json' }); console.log(response.body); } catch (error) { console.error('Fehler:', error.message); }}
createPost();Besonderheiten:
- Unterstützung von Streams und Paginierung
- Integrierte Unterstützung für Wiederholungsversuche (Retry)
- Arbeit mit Cookies und Caching
- Unterstützung von HTTP/2 (über
http2-wrapper)
3. Node.js Fetch API – nativer Standard
Seit Node.js 18 ist die Fetch API ein integriertes Modul (global verfügbar). Es handelt sich um eine Implementierung derselben API wie in Browsern, was universellen Code vereinfacht.
Anwendungsbeispiel
async function fetchData() { try { const response = await fetch('https://jsonplaceholder.typicode.com/posts/1'); if (!response.ok) throw new Error('HTTP-Fehler: ' + response.status); const data = await response.json(); console.log(data); } catch (error) { console.error('Fehler:', error.message); }}
fetchData();Besonderheiten:
- Keine Installation erforderlich – in Node.js 18+ integriert
- Standard-API, bekannt für Frontend-Entwickler
- Unterstützung von
AbortControllerzum Abbrechen von Anfragen - Eingeschränkte Möglichkeiten im Vergleich zu Axios/Got (z. B. keine Interceptors)
4. undici – Hochleistungs-HTTP/1.1-Client
undici ist ein schneller, moderner HTTP-Client, der die Grundlage des integrierten Fetch in Node.js bildet. Er ist für maximalen Durchsatz optimiert.
Installation
npm install undiciBeispiel einer Anfrage
const { request } = require('undici');
async function fetchWithUndici() { try { const { statusCode, body } = await request('https://jsonplaceholder.typicode.com/users'); const data = await body.json(); console.log('Status:', statusCode); console.log('D