© saicle/Shutterstock.com
HTTP-Requests mit Node.js

Node.js-Module: request


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 ...

Neugierig geworden?

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang