HTTP-Client für JavaScript (Node.js): Top-Bibliotheken

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

HTTP-Client für JavaScript (Node.js): Top-Bibliotheken für die Netzwerkarbeit



In der modernen Webentwicklung mit Node.js ist das Senden von HTTP-Anfragen eine der häufigsten Operationen. Ob es um den Zugriff auf eine REST-API, das Hochladen von Dateien oder die Interaktion mit Microservices geht – ohne einen zuverlässigen HTTP-Client kommt man nicht aus. In diesem Artikel analysieren wir im Detail die vier besten Bibliotheken für JavaScript (Node.js): Axios, Got, node-fetch und undici. Sie erfahren mehr über ihre Besonderheiten, Leistungsfähigkeit und erhalten fertige Codebeispiele.



1. Axios – der universelle Standard

Axios ist der beliebteste HTTP-Client für Node.js und Browser. Er basiert auf Promises und unterstützt Interceptors, automatisches JSON-Parsing, CSRF-Schutz und das Abbrechen von Anfragen.



Installation:

npm install axios


Beispiel einer GET-Anfrage:

const axios = require('axios');

async function getUser(id) { try { const response = await axios.get(`https://api.example.com/users/${id}`); console.log(response.data); } catch (error) { console.error('Fehler:', error.message); }}

getUser(1);


Beispiel einer POST-Anfrage mit Headern:

const axios = require('axios');

const data = { name: 'Alice', role: 'developer' };

axios.post('https://api.example.com/users', data, { headers: { 'Content-Type': 'application/json' }}).then(res => console.log(res.status));


Vorteile: Einfachheit, umfangreiches Ökosystem, Unterstützung für Upload-Fortschritt.

Nachteile: Paketgröße (~100 KB), Überdimensionierung für einfache Aufgaben.



2. Got – schnell und funktionsreich

Got ist ein leichtgewichtiger HTTP-Client mit einer umfangreichen API. Er unterstützt Streaming, Caching, Wiederholungsversuche und ist schneller als Axios.



Installation:

npm install got


Beispiel mit Stream und Fehlerbehandlung:

const got = require('got');const fs = require('fs');

async function downloadFile(url, outputPath) { try { const stream = got.stream(url); const fileStream = fs.createWriteStream(outputPath); stream.pipe(fileStream);

await new Promise((resolve, reject) => { stream.on('end', resolve); stream.on('error', reject); }); console.log('Datei heruntergeladen'); } catch (error) { console.error('Download-Fehler:', error.message); }}

downloadFile('https://example.com/file.zip', './file.zip');


Beispiel mit Wiederholungsversuchen:

const got = require('got');

got('https://api.example.com/data', { retry: { limit: 3, methods: ['GET'] }}).then(response => console.log(response.body));


Vorteile: Geringe Größe, Geschwindigkeit, integrierte Wiederholungsversuche.

Nachteile: Weniger intuitive API für Anfänger.



3. node-fetch – vertraute Syntax aus dem Browser

node-fetch ist ein Port der browserbasierten Fetch-API für Node.js. Ideal, wenn Sie fetch im Browser gewohnt sind und einen einheitlichen Code wünschen.



Installation:

npm install node-fetch


Beispiel mit async/await:

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

async function getPosts() { 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.title);}

getPosts();


Beispiel zum Senden von FormData:

const fetch = require('node-fetch');const FormData = require('form-data');

const form = new FormData();form.append('file', fs.createReadStream('./photo.jpg'));\

Empfehlungen