Mit über 18 Millionen Downloads pro Monat ist das request-Paket eines der am häufigsten verwendeten npm-Module im gesamten Repository. Und das aus gutem Grund: Denn falls Sie schon einmal versucht haben, über das HTTP-Modul von Node.js selbst einen HTTP Request an einen Webserver zu erzeugen, werden Sie festgestellt haben, dass dies alles andere als lustig ist.
Die Schnittstelle ist wenig intuitiv und weit entfernt von komfortabel, und deshalb wurde schon vor langer Zeit das request-Paket ins Leben gerufen. Sein einziges Ziel ist es, die Erzeugung von HTTP-Clients unter Node.js zum Kinderspiel zu machen. Dabei kann sich allerdings auch der Funktionsumfang des Moduls sehen lassen: Es deckt alle üblichen Use Cases von einfachen GET Requests bis hin zu Dateiuploads und Authentifizierung ab. Zwei weitere erwähnenswerte Features des request-Pakets sind die Unterstützung verschlüsselter Verbindungen über HTTPS ohne weitere Konfiguration, und die Tatsache, dass das Paket automatisch Weiterleitungen folgt und hier nicht nur die Meldung zurückliefert, dass es sich um eine solche handelt.
Installation und Verwendung
Der Node Package Manager macht die Installation erfahrungsgemäß recht einfach. Mit dem Befehl npm install --save request ist das Modul schon Teil Ihrer Applikation. Aber auch die Verwendung des Moduls gestaltet sich ähnlich unproblematisch.
const request = require('request'); request('http://www.google.com', (err, res, body) => { console.log(body); });
In der einfachsten Variante der Verwendung des Pakets rufen Sie die vom Paket exportierte Funktion einfach mit dem Ziel-URL und einer Callback-Funktion auf. Das request-Paket führt daraufhin eine GET-Anfrage an den angegebenen URL aus; sobald das Ergebnis vorliegt, wird die Callback-Funktion ausgeführt. Das erste Argument ist – dem Node.js-Standard folgend – ein Fehlerobjekt, das im Erfolgsfall den Wert null aufweist. Das zweite Argument stellt eine Objektrepräsentation der Antwort inklusive aller Headerinformationen und des Bodys dar. Das letzte Argument schließlich beinhaltet lediglich den Body der Antwort.
Sollte Ihnen diese Art der Antwortbehandlung entweder nicht liegen oder nicht zu Ihrer Applikation passen, müssen Sie sich keine Sorgen machen. Das request-Paket ist in seiner Verwendung recht flexibel und bietet Ihnen zwei Schnittstellen zur Anbindung, von denen eine der Umgang mit Callbacks ist. Sie können die Antwort des Webservers auch ganz bequem als Stream verarbeiten und diesen Stream dann ...