Dein erster Node.js-Webserver in 10 Minuten

Bevor wir eine einfache Anwendung in Node.js erstellen, starten wir mit den Komponenten, die wir dafür benötigen. Eine Node.js-Anwendung besteht aus den folgenden drei Komponenten:

  1. Import benötigter Module: Wir verwenden das require-Directive, um benötigte Node.js Module zu laden.
  2. Server erstellen: Ein Server, der auf Client-Anfragen wartet. Unser Node-Server ist vergleichbar mit einem Apache HTTP Server.
  3. Client-Anfrage verarbeiten und Antwort zurückgeben: Der Server, der in Schritt 2 erstellt wurde, liest die HTTP-Anfrage des Clients aus und gibt eine Antwort zurück. In den meisten Fällen ist die wird die HTTP-Anfrage über den Browser oder über die Kommandozeile abgeschickt.

Node.js Webserver erstellen

Schritt 1 - Erforderliches Modul importieren

Wir benutzen das require-Directive, um das HTTP-Modul zu laden und die zurückgegebene HTTP-Instanz in einer Variable wie folgt zu speichern . Im Code sieht das Ganze so aus:

http = require("http");

Schritt 2 - Server erstellen

Im Anschluss verwenden wir die erstellte http-Instanz und rufen die Methode http.createServer() auf. Dadurch wird eine Server-Instanz erstellt. Über die listen-Methode können wir den Server an einen bestimmten Port binden z.B. 8080. HTTP-Anfragen können dann später über diesen Port an den Server geschickt werden.

Der listen-Methode übergeben wir eine Funktion mit den Parametern request und response. In unserem einfachen Beispiel, wollen wir einen Text, wie bspw. "Hallo LerneProgrammieren!" zurückgeben.

Im Code sieht das so aus:

http.createServer(function (request, response) {
    response.writeHead(200, {
        'Content-Type': 'text/plain'
    });

    // Sende Inhalt der Antwort als "Hallo LerneProgrammieren!" 
    response.end('Hallo LerneProgrammieren!\n');
}).listen(8080);

// In der Browser-Konsole (Entwicklertools) wird folgende Nachricht ausgegeben
console.log('Der Server läuft auf folgender Adresse: http://localhost:8080/');

Der obige Code reicht aus, um einen HTTP-Server zu erstellen, der auf Anfragen wartet, genauer gesagt auf eine Anfrage über den Port 8080 des Servers (localhost / unser Computer) wartet.

Schritt 3 - HTTP-Anfrage und Antwort überprüfen

Wenn wir den Code aus Schritt 1 und 2 überprüfen wollen, können wir unseren Code-Editor aufrufen und den folgenden Code in eine neue Datei (z.B. meinserver.js) kopieren & einfügen:

http = require("http");

http.createServer(function (request, response) {
    response.writeHead(200, {
        'Content-Type': 'text/plain'
    });

    // Sende Inhalt der Antwort als "Hallo LerneProgrammieren!" 
    response.end('Hallo LerneProgrammieren!\n');
}).listen(8080);

// In der Browser-Konsole (Entwicklertools) wird folgende Nachricht ausgegeben
console.log('Der Server läuft auf folgender Adresse: http://localhost:8080/');

Speichere die Datei in einem Ordner deiner Wahl z.B. unter dem Namen "meinserver.js" ab. Wenn du das erledigt hast, können wir die Datei meinserver.js über die Kommandozeile ausführen.

Navigiere dafür über die Kommandozeile zum Speicherort deiner main.js-Datei.

Von dort aus führst du die Datei mit folgendem Befehl aus:

node meinserver.js

Der Server wird in wenigen Sekunden gestartet und wartet auf Port 8080 auf Anfragen.

HTTP-Anfrage an den Node.js Server senden (über den Browser)

Öffne einen Browser deiner Wahl und gibt folgende Adresse ein: http://localhost:8080

Bestätige die Eingabe und schaue dir im Anschluss die Ausgabe in deinem Browser an.

Du solltest jetzt in etwa Folgendes sehen:

nodejs node server output

Output: Hallo LerneProgrammieren!

Das war einfach, oder?

Fazit zum Node.js-Server Tutorial

Wenn du das Tutorial bis hierhin verfolgt hast, dann hast du deinen ersten HTTP-Server mit Node.js erstellt.

Der Server lauscht, solange er läuft, auf alle HTTP-Anfragen über den gebundenen Port 8080. Sobald die Anfrage verarbeitet wurde, wird die Textausgabe "Hallo LerneProgrammieren" an den Client zurückgesendet und im Browser ausgegeben.

  • 13. November 2021
Click Here to Leave a Comment Below 0 comments

Leave a Reply: