Möchten Sie lernen, wie Sie POST-Anfragen in Node.js erstellen? Wenn ja, dann sind Sie hier genau richtig. In diesem Blogbeitrag zeige ich Ihnen, wie Sie das integrierte http-Modul und die beliebte axios-Bibliothek verwenden, um POST-Anfragen in Node.js zu erstellen. Verwenden Sie dann Apidog , um POST-Anfragen mit einer visuellen Oberfläche zu testen und sie mit Ihrem Team zu teilen.
Was ist eine HTTP POST-Anfrage in NodeJS?
Eine HTTP POST-Anfrage in Node.js wird verwendet, um Daten an einen Server zu senden, um eine Ressource zu erstellen oder zu aktualisieren. POST-Anfragen werden häufig verwendet, wenn Formulardaten übermittelt, Dateien hochgeladen oder Daten zum Speichern in einer Datenbank gesendet werden.
In Node.js können Sie eine POST-Anfrage mit dem integrierten http-Modul oder einer Drittanbieterbibliothek wie Axios erstellen. Die mit der Anfrage zu sendenden Daten sind im Anfragetext enthalten. Der Server kann dann auf diese Daten zugreifen und sie verarbeiten, um die gewünschte Aktion auszuführen.
Node.js bietet ein ereignisgesteuertes, nicht blockierendes I/O-Modell, das es effizient für die Verarbeitung datenintensiver und Echtzeitanwendungen macht. Seine Fähigkeit, POST-Anfragen zu verarbeiten und Daten zu verarbeiten, macht es zu einer beliebten Wahl für den Aufbau von Web-APIs, Echtzeit-Chat-Anwendungen und anderen Arten von serverseitigen Anwendungen.

Wie man eine POST-Anfrage in Node.js sendet?
Nun zeigen wir Ihnen verschiedene Methoden zum Senden und Erstellen von POST-Anfragen in Node.js, einschließlich des HTTP-Moduls und der Axios-Bibliothek. Sie können den Ansatz wählen, der am besten zu Ihren Projektanforderungen und -präferenzen passt.
1. Senden einer POST-Anfrage in Node.js mit dem http-Modul
Node.js wird häufig verwendet, um Webserver, Webanwendungen und Web-APIs zu erstellen. Node.js bietet auch ein integriertes http-Modul, mit dem Sie HTTP-Anfragen und -Antworten erstellen können.
Um eine POST-Anfrage in Node.js mit dem http-Modul zu erstellen, müssen Sie die folgenden Schritte ausführen:
- Importieren Sie das
http-Modul mit derrequire-Funktion. - Erstellen Sie ein
options-Objekt, das die Informationen über die POST-Anfrage enthält, wie z. B. Hostname, Port, Pfad, Methode, Header und Daten. - Verwenden Sie die
http.request-Methode, um ein Anfrageobjekt zu erstellen, wobei Sie dasoptions-Objekt als erstes Argument und eine Callback-Funktion als zweites Argument übergeben. Die Callback-Funktion wird ausgeführt, wenn die Antwort empfangen wird, und sie hat einresponse-Objekt als Parameter. - Verwenden Sie das
request-Objekt, um die Daten zu senden und die Anfrage zu beenden. Dasrequest-Objekt ist eine Instanz derhttp.ClientRequest-Klasse, die dieWritableStream-Schnittstelle implementiert. Dies bedeutet, dass Sie dasrequest-Objekt als Datenstrom verwenden und Daten mit derrequest.write-Methode in es schreiben können. Sie können auch dierequest.end-Methode verwenden, um das Ende der Daten und der Anfrage zu signalisieren. Sie können auch auf Ereignisse wieerrorundtimeoutfür dasrequest-Objekt hören und diese entsprechend behandeln. - Verwenden Sie das
response-Objekt, um die Antwortdaten und -header zu verarbeiten. Dasresponse-Objjekt ist eine Instanz derhttp.IncomingMessage-Klasse, die dieReadableStream-Schnittstelle implementiert. Dies bedeutet, dass Sie dasresponse-Objekt als Datenstrom verwenden und auf Ereignisse wiedata,endunderrorhören können. Sie können auch dieresponse.statusCode-Eigenschaft verwenden, um den Statuscode der Antwort abzurufen, und dieresponse.headers-Eigenschaft, um die Header der Antwort abzurufen. - Verwenden Sie die
response.on-Methode, um Ereignis-Listener für dasresponse-Objekt zu registrieren. Sie können beispielsweise dieresponse.on('data', callback)-Methode verwenden, um auf dasdata-Ereignis zu hören, das ausgelöst wird, wenn ein Datenblock empfangen wird. Die Callback-Funktion hat einchunk-Objekt als Parameter, das ein Datenpuffer ist. Sie können diechunk.toString()-Methode verwenden, um den Puffer in eine Zeichenkette umzuwandeln, und ihn an eine Variable anhängen, um die gesamten Antwortdaten zu speichern. Sie können auch dieresponse.on('end', callback)-Methode verwenden, um auf dasend-Ereignis zu hören, das ausgelöst wird, wenn die Antwort abgeschlossen ist. Die Callback-Funktion hat keine Parameter, und Sie können sie verwenden, um alle abschließenden Aktionen auszuführen, z. B. die Protokollierung oder das Parsen der Antwortdaten. Sie können auch dieresponse.on('error', callback)-Methode verwenden, um auf daserror-Ereignis zu hören, das ausgelöst wird, wenn während der Antwort ein Fehler auftritt. Die Callback-Funktion hat einerror-Objekt als Parameter, und Sie können es verwenden, um den Fehler zu behandeln, z. B. die Protokollierung oder das Auslösen.
Hier ist ein Beispiel, wie Sie eine POST-Anfrage in Node.js mit dem http-Modul erstellen:
// Importieren Sie das http-Modul
const http = require('http');
// Erstellen Sie ein Options-Objekt
const options = {
hostname: 'jsonplaceholder.typicode.com',
port: 80,
path: '/posts',
method: 'POST',
headers: {
'Content-Type': 'application/json',
'User-Agent': 'Node.js'
}
};
// Erstellen Sie ein Datenobjekt
const data = {
title: 'Hello, world!',
body: 'This is a test post',
userId: 1
};
// Wandeln Sie das Datenobjekt in eine Zeichenkette um
const dataString = JSON.stringify(data);
// Aktualisieren Sie das Options-Objjekt mit der Datenlänge
options.headers['Content-Length'] = dataString.length;
// Erstellen Sie ein Anfrageobjekt
const request = http.request(options, (response) => {
// Initialisieren Sie eine Variable, um die Antwortdaten zu speichern
let data = '';
// Hören Sie auf das Datenereignis
response.on('data', (chunk) => {
// Hängen Sie den Chunk an die Datenvariable an
data += chunk.toString();
});
// Hören Sie auf das Endereignis
response.on('end', () => {
// Protokollieren Sie den Statuscode und die Header
console.log(`Status code: ${response.statusCode}`);
console.log(`Headers: ${JSON.stringify(response.headers)}`);
// Parsen Sie die Daten als JSON
const post = JSON.parse(data);
// Protokollieren Sie die Post-Informationen
console.log(`Post ID: ${post.id}`);
console.log(`Post Title: ${post.title}`);
console.log(`Post Body: ${post.body}`);
console.log(`Post User ID: ${post.userId}`);
});
// Hören Sie auf das Fehlerereignis
response.on('error', (error) => {
// Werfen Sie den Fehler
throw error;
});
});
// Schreiben Sie die Daten in das Anfrageobjekt
request.write(dataString);
// Beenden Sie das Anfrageobjekt
request.end();
2. Erstellen Sie POST-Anfragen in Node.js mit der axios-Bibliothek
Das http-Modul ist ein Modul auf niedriger Ebene, das grundlegende Funktionen zum Erstellen von HTTP-Anfragen und -Antworten bereitstellt. Wenn Sie jedoch ein Modul auf höherer Ebene und benutzerfreundlicher verwenden möchten, können Sie die axios-Bibliothek verwenden. Axios ist eine beliebte und leistungsstarke Bibliothek, mit der Sie HTTP-Anfragen erstellen und Antworten mithilfe von Promises und der async/await-Syntax verarbeiten können. Axios unterstützt auch Funktionen wie Interceptors, Transformers, Timeouts, Cancel Tokens und mehr.
Um eine POST-Anfrage in Node.js mit der axios-Bibliothek zu erstellen, müssen Sie die folgenden Schritte ausführen:
- Installieren Sie die
axios-Bibliothek mit demnpm-Befehl:npm install axios. - Importieren Sie die
axios-Bibliothek mit derrequire-Funktion. - Verwenden Sie die
axios.post-Methode, um die POST-Anfrage zu erstellen, wobei Sie die URL der Ressource als erstes Argument und das Datenobjekt als zweites Argument übergeben. Sie können auch ein optionalesconfig-Objekt als drittes Argument übergeben, das Informationen über die POST-Anfrage enthalten kann, z. B. die Header, Parameter, Timeout und mehr. Dieaxios.post-Methode gibt ein Promise zurück, das zu einemresponse-Objekt aufgelöst oder zu einemerror-Objekt abgelehnt wird. - Verwenden Sie die
catch-Methode, um das abgelehnte Promise zu verarbeiten, wobei Sie eine Callback-Funktion als erstes Argument übergeben. Die Callback-Funktion hat einerror-Objekt als Parameter, das die Fehlermeldung, den Code, die Anfrage und die Antwort enthält. Sie können dieerror.response-Eigenschaft verwenden, um auf das Antwortobjekt zuzugreifen, und dieerror.request-Eigenschaft, um auf das Anfrageobjekt zuzugreifen. - Alternativ können Sie die
async/await-Syntax verwenden, um die POST-Anfrage zu erstellen und die Antwort zu verarbeiten. Dazu müssen Sie dasasync-Schlüsselwort vor der Funktion verwenden, die die POST-Anfrage enthält, und dasawait-Schlüsselwort vor deraxios.post-Methode. Auf diese Weise können Sie asynchronen Code auf synchrone Weise schreiben und dasresponse-Objekt einer Variable zuweisen. Sie können dann dentry/catch-Block verwenden, um alle Fehler zu behandeln, die während der POST-Anfrage auftreten können.
Hier ist ein Beispiel, wie Sie eine POST-Anfrage in Node.js mit der axios-Bibliothek erstellen:
// Importieren Sie die axios-Bibliothek
const axios = require('axios');
// Erstellen Sie ein Datenobjekt
const data = {
title: 'Hello, world!',
body: 'This is a test post',
userId: 1
};
// Erstellen Sie die POST-Anfrage mit der then-Methode
axios.post('http://jsonplaceholder.typicode.com/posts', data, {
headers: {
'Content-Type': 'application/json',
'User-Agent': 'Node.js'
}
}).then((response) => {
// Protokollieren Sie den Statuscode und die Header
console.log(`Status code: ${response.status}`);
console.log(`Headers: ${JSON.stringify(response.headers)}`);
// Protokollieren Sie die Post-Informationen
console.log(`Post ID: ${response.data.id}`);
console.log(`Post Title: ${response.data.title}`);
console.log(`Post Body: ${response.data.body}`);
console.log(`Post User ID: ${response.data.userId}`);
}).catch((error) => {
// Protokollieren Sie die Fehlermeldung und den Code
console.log(`Error message: ${error.message}`);
console.log(`Error code: ${error.code}`);
// Protokollieren Sie den Antwortstatus und die Daten, falls verfügbar
if (error.response) {
console.log(`Response status: ${error.response.status}`);
console.log(`Response data: ${JSON.stringify(error.response.data)}`);
}
// Protokollieren Sie die Anfragemethode und den Pfad, falls verfügbar
if (error.request) {
console.log(`Request method: ${error.request.method}`);
console.log(`Request path: ${error.request.path}`);
}
});
// Erstellen Sie die POST-Anfrage mit der async/await-Syntax
async function createPost() {
try {
// Warten Sie auf die POST-Anfrage und weisen Sie das Antwortobjekt einer Variable zu
const response = await axios.post('http://jsonplaceholder.typicode.com/posts', data, {
headers: {
'Content-Type': 'application/json',
'User-Agent': 'Node.js'
}
});
// Protokollieren Sie den Statuscode und die Header
console.log(`Status code: ${response.status}`);
console.log(`Headers: ${JSON.stringify(response.headers)}`);
// Protokollieren Sie die Post-Informationen
console.log(`Post ID: ${response.data.id}`);
console.log(`Post Title: ${response.data.title}`);
console.log(`Post Body: ${response.data.body}`);
console.log(`Post User ID: ${response.data.userId}`);
} catch (error) {
// Protokollieren Sie die Fehlermeldung und den Code
console.log(`Error message: ${error.message}`);
console.log(`Error code: ${error.code}`);
// Protokollieren Sie den Antwortstatus und die Daten, falls verfügbar
if (error.response) {
console.log(`Response status: ${error.response.status}`);
console.log(`Response data: ${JSON.stringify(error.response.data)}`);
}
// Protokollieren Sie die Anfragemethode und den Pfad, falls verfügbar
if (error.request) {
console.log(`Request method: ${error.request.method}`);
console.log(`Request path: ${error.request.path}`);
}
}
}
// Rufen Sie die createPost-Funktion auf
createPost();
3. Senden und Empfangen von Daten in Node.js
Das Senden und Empfangen von Daten in Node.js umfasst einige wichtige Schritte. Wenn Sie eine POST-Anfrage in Node.js senden, möchten Sie in der Regel einige Daten an den Webserver senden und eine Antwort erhalten. Beispielsweise möchten Sie möglicherweise Benutzerinformationen senden, um ein neues Konto zu erstellen, und eine Bestätigungsnachricht oder ein Token erhalten. Oder Sie senden möglicherweise Dateidaten, um eine Datei hochzuladen, und erhalten eine Datei-URL oder eine Statusmeldung zurück.
Um verschiedene Datentypen zu verarbeiten, benötigen Sie verschiedene Methoden und Module:
- JSON-Daten: Wenn Ihre Daten ein einfaches Objekt oder Array sind, können Sie es mit
JSON.stringify()in eine JSON-Zeichenkette konvertieren. Diese Methode erstellt eine Zeichenkette mit Schlüssel-Wert-Paaren und Arrays, wodurch das Senden und Empfangen von Daten erleichtert wird. Um mit JSON-Antworten zu arbeiten, können SieJSON.parse()verwenden, um die Antwort wieder in ein JavaScript-Objekt oder -Array zu konvertieren. - Dateidaten: Wenn Sie mit Dateien arbeiten, können Sie die
form-data-Bibliothek verwenden, um ein Formular-Datenobjekt zu erstellen und die Datei daran anzuhängen. Diese Bibliothek ahmt das Verhalten von HTML-Formularen nach, sodass Sie Text- und Dateidaten senden können. Sie müssen dieform-data-Bibliothek mit npm installieren und sie dann verwenden, um das Formular-Datenobjekt zu erstellen und zu senden. - Streams: Für das Streaming von Daten können Sie das integrierte
stream-Modul verwenden. Streams ermöglichen es Ihnen, große oder kontinuierliche Daten zu verarbeiten, ohne sie alle in den Speicher zu laden.
Sie können je nach Bedarf lesbare, beschreibbare oder Transformations-Streams erstellen. Streams sind nützlich für die Verarbeitung von Audio-, Video- oder Netzwerkdaten, und Sie können Daten von einem Stream zum anderen weiterleiten, um sie zu verarbeiten oder an den Server zu senden.
4. Verwenden von Apidog zum Testen Ihrer NodeJs POST-Anfrage
Apidog ist ein leistungsstarkes Tool zum Testen von APIs. Es ermöglicht Ihnen, API-Anfragen zu erstellen und zu speichern, sie in Sammlungen zu organisieren und sie mit Ihrem Team zu teilen.
So können Sie Apidog verwenden, um Ihre POST-Anfrage zu testen:
- Öffnen Sie Apidog und erstellen Sie eine neue Anfrage.

2. Setzen Sie die Anfragemethode auf POST.

3. Geben Sie die URL der Ressource ein, die Sie aktualisieren möchten. Fügen Sie alle zusätzlichen Header oder Parameter hinzu, die Sie einschließen möchten, und klicken Sie dann auf die Schaltfläche „Senden“, um die Anfrage zu senden.

4. Überprüfen Sie, ob die Antwort Ihren Erwartungen entspricht.

Fazit
In diesem Blogbeitrag habe ich Ihnen gezeigt, wie Sie POST-Anfragen in Node.js mit dem http-Modul und der axios-Bibliothek erstellen. Ich habe Ihnen auch gezeigt, wie Sie Daten in verschiedenen Formaten und Szenarien senden und empfangen. Ich hoffe, Sie haben etwas Nützliches gelernt und es hat Ihnen Spaß gemacht, diesen Beitrag zu lesen.



