Wie man Axios in Node.js verwendet (mit Codebeispielen)

Axios ist ein promise-basierter HTTP-Client, der das Senden von HTTP-Anfragen in Node.js vereinfacht. Es rationalisiert Aufgaben wie das Senden von GET- und POST-Anfragen, die Verarbeitung von Antworten und die Verwaltung von Fehlern. In diesem Leitfaden werden wir anhand praktischer Codebeispiele untersuchen, wie man Axios in Node.js verwendet.
Wichtige Erkenntnisse
- Axios bietet eine einfache API für HTTP-Anfragen in Node.js.
- Es nutzt Promises für saubereren asynchronen Code.
- Bietet unkomplizierte Mechanismen zur Behandlung verschiedener Fehlerszenarien.
Einrichten von Axios in Node.js
Um mit Axios in Ihrem Node.js-Projekt loszulegen:
-
Initialisieren Sie Ihr Projekt (falls noch nicht geschehen):
npm init -y
-
Installieren Sie Axios:
npm install axios
-
Binden Sie Axios in Ihre Anwendung ein:
const axios = require('axios');
GET-Anfragen senden
Eine GET-Anfrage ruft Daten von einem bestimmten Endpunkt ab. So führen Sie eine GET-Anfrage mit Axios durch:
const axios = require('axios');
async function fetchData() {
try {
const response = await axios.get('https://jsonplaceholder.typicode.com/posts/1');
console.log(response.data);
} catch (error) {
console.error('Fehler beim Abrufen der Daten:', error);
}
}
fetchData();
Erklärung:
- Definiert eine asynchrone Funktion
fetchData
. - Verwendet
await
, um eine Axios GET-Anfrage zu stellen. - Protokolliert Antwortdaten in der Konsole.
- Behandelt Fehler mit
try...catch
.
POST-Anfragen senden
Eine POST-Anfrage sendet Daten an einen Server, um eine neue Ressource zu erstellen. So führen Sie eine POST-Anfrage durch:
const axios = require('axios');
async function createPost() {
try {
const response = await axios.post('https://jsonplaceholder.typicode.com/posts', {
title: 'Neuer Beitrag',
body: 'Dies ist der Inhalt des neuen Beitrags.',
userId: 1,
});
console.log('Beitrag erstellt:', response.data);
} catch (error) {
console.error('Fehler beim Erstellen des Beitrags:', error);
}
}
createPost();
Erklärung:
- Definiert eine asynchrone Funktion
createPost
. - Verwendet
await
mitaxios.post()
und übergibt den Endpunkt und das Datenobjekt. - Protokolliert den neu erstellten Beitrag.
- Behandelt Fehler ordnungsgemäß.
Umgang mit Antworten und Fehlern
Axios bietet eine strukturierte Möglichkeit, Antworten und Fehler zu behandeln. Das Antwortobjekt enthält Eigenschaften wie data
, status
und headers
.
So gehen Sie mit verschiedenen Fehlertypen um:
const axios = require('axios');
async function fetchData() {
try {
const response = await axios.get('https://jsonplaceholder.typicode.com/posts/1');
console.log('Daten:', response.data);
console.log('Status:', response.status);
} catch (error) {
if (error.response) {
// Server antwortete mit einem Statuscode außerhalb von 2xx
console.error('Fehlerdaten:', error.response.data);
console.error('Fehlerstatus:', error.response.status);
} else if (error.request) {
// Keine Antwort erhalten
console.error('Keine Antwort erhalten:', error.request);
} else {
// Fehler beim Einrichten der Anfrage
console.error('Fehler:', error.message);
}
}
}
fetchData();
Erklärung:
- Protokolliert Antwortdaten und Status bei Erfolg.
- Unterscheidet zwischen:
- Fehlern mit Antworten (
error.response
) - Fehlern ohne Antwort (
error.request
) - Anderen Axios-bezogenen Fehlern (
error.message
)
- Fehlern mit Antworten (
FAQs
Ja, Axios ist isomorph und kann in beiden Umgebungen ausgeführt werden.
Axios transformiert JSON-Daten für Anfragen und Antworten automatisch, wodurch manuelles Parsen entfällt.
Ja, Sie können benutzerdefinierte Header setzen, indem Sie ein `headers`-Objekt in der Anfragekonfiguration übergeben.
Fazit
Axios vereinfacht HTTP-Anfragen in Node.js und bietet eine saubere und prägnante API. Die Unterstützung von Promises ermöglicht eine effiziente Handhabung asynchroner Vorgänge. Wenn Sie verstehen, wie man GET- und POST-Anfragen durchführt und Antworten und Fehler behandelt, können Sie Axios effektiv in Ihre Node.js-Anwendungen integrieren.