Stellen Sie eine HTTP-Anforderung zum Abrufen von Daten mit Node.js

Shraddha Paghdar 12 Oktober 2023
Stellen Sie eine HTTP-Anforderung zum Abrufen von Daten mit Node.js

Im heutigen Artikel erfahren Sie, wie Sie die HTTP-Anfrage stellen und die Daten mit node.js abrufen.

HTTP-Anfrage zum Abrufen von Daten mit Node.js

Wir können integrierte Module in node.js verwenden, um HTTP-Anforderungen zu senden. Callbacks werden von diesen Standardmodulen verwendet, um die Anfrage zu verarbeiten und die Daten zu erhalten.

Axios, node-fetch, super agent und andere Module können auch zum Senden von HTTP-Anfragen verwendet werden. Das HTTPs-Modul macht den Aufruf unter Verwendung der request-Funktion.

Als Argument wird dieser Request-Funktion das Options-Objekt übergeben, das den Hostnamen, die port-Nummer und den Pfad der Server-URL sowie die Art der Anfrage bereitstellt.

Die callback-Funktion ist das zweite Argument. Wenn die Anfrage bearbeitet wird, wird diese callback-Funktion aktiviert. Das HTTPs-Modul verfügt über mehrere Ereignisse, die die Anforderungen verarbeiten und die angeforderten Daten abrufen können.

Um beispielsweise eine Anfrage zu beenden, verwenden Sie im Fehlerfall req.end() und req.on('error'). Nach Erhalt der Anfrage verarbeitet der Server die Daten und sendet die Antwort in Blöcken zurück.

Wenn ein antwortbezogenes Ereignis eintritt, wie z. B. res.on('data') oder res.on('end'), können wir die Antwort abrufen. Wenn die vollständige Antwort im Endereignis zurückgegeben wird, können wir sie auf der Konsole ausgeben, nachdem wir den Datenblock im Datenereignis verkettet haben.

Da https.request asynchron ist, wird es undefiniert zurückgeben, wenn wir versuchen, die Serverantwort zu lesen, bevor die Anfrage abgeschlossen ist. Lassen Sie uns den obigen Prozess in einem einfachen Beispiel unten verstehen.

Beispielcode:

const https = require('https');
const options = {
  hostname: 'jsonplaceholder.typicode.com',
  port: 443,
  path: '/posts/1',
  method: 'GET',
};

function submitRequest() {
  const req = https.request(options, res => {
    let outputData = ''
    console.log(`statusCode: ${res.statusCode}`);
    res.on('data', dataChunk => {
      outputData += dataChunk;
    });
    res.on('end', () => {
      console.log('outputData', outputData);
    });
  });
  req.on('error', error => {
    console.error('error', error);
  });
  req.end();
}
submitRequest()

Im obigen Codebeispiel senden wir eine GET-Anfrage an den Mock-Server, indem wir den Pfad und eine port-Nummer angeben. Nach Erhalt der Anfrage und Verarbeitung der Daten fragmentiert der Server die Antwort und sendet sie zurück.

Wir können die Antwortdaten verketten und auf der Konsole ausgeben, sobald die Antwort vollständig in der end-Methode zurückgegeben wurde.

Führen Sie die obige Codezeile in Replit aus, das mit node.js kompatibel ist. Es wird das folgende Ergebnis angezeigt. Sie können auch die Demo für den obigen Code hier finden.

Ausgang:

statusCode: 200
outputData {
  "userId": 1,
  "id": 1,
  "title": "sunt aut facere repellat provident occaecati excepturi optio reprehenderit",
  "body": "quia et suscipit\nsuscipit recusandae consequuntur expedita et cum\nreprehenderit molestiae ut ut quas totam\nnostrum rerum est autem sunt rem eveniet architecto"
}
Shraddha Paghdar avatar Shraddha Paghdar avatar

Shraddha is a JavaScript nerd that utilises it for everything from experimenting to assisting individuals and businesses with day-to-day operations and business growth. She is a writer, chef, and computer programmer. As a senior MEAN/MERN stack developer and project manager with more than 4 years of experience in this sector, she now handles multiple projects. She has been producing technical writing for at least a year and a half. She enjoys coming up with fresh, innovative ideas.

LinkedIn