Node.js-Tutorium: Hello World: HTTP
Dieser Artikel erfüllt die GlossarWiki-Qualitätsanforderungen nur teilweise:
Korrektheit: 4 (großteils überprüft) |
Umfang: 1 (zu gering) |
Quellenangaben: 5 (vollständig vorhanden) |
Quellenarten: 5 (ausgezeichnet) |
Konformität: 5 (ausgezeichnet) |
Node.js-Tutorium Hello World
Übersicht: Teil 1: Konsole | Teil 2: HTTP | Teil 3: TCP
Use Cases
Es soll ein einfacher Node.js-Web-Server erstellt werden, der
unter der URL http://localhost:7777/
eine HTML-Seite mit dem
Inhalt
Hallo, Welt!
als Ergebnis liefert.
Auf der Seite soll sich außerdem ein Eingabefeld und ein Butoon befinden.
Wenn der Benutzer seinen Namen eingibt und auf den Button klickt, wird
er zusätzlich mit seinem Namen begrüßt:
Hallo, <BENUTZERNAME>!
.
Ein einfacher HTTP-Server, der Hallo, Welt!
ausgibt
Erstellen Sie eine Datei hello-world-http-01.js
und
fügen Sie folgenden Code ein:
'use strict';
require('http')
.createServer
( function (p_request, p_response)
{ p_response.writeHead(200, {'Content-Type': 'text/html; charset=utf-8'});
p_response.write
(['<!DOCTYPE html>',
'<html>',
'<head>',
'<title>Hallo-Welt-Server</title>',
'</head>',
'<body>',
'<p>Hallo, Welt!</p>',
'</body>',
'</html>'
].join('')
);
p_response.end();
}
)
.listen(7777);
console.log("Der Server läuft und lauscht auf Port 7777.");
Führen Sie diese Datei in WebStorm oder in der Bash-Konsole auf und öffnen Sie dann
in Ihrem Browser die URL http://localhost:7777/
.
Analyse des Codes
Die Node-Bibliothek http
stellt die Methode
createServer
zur verfügung, mit der ein neuer HTTP-Server erstellt werden kann.
Ein neu erstellter Server wird gestartet, indem ihm die Nachricht listen(<POTNUMMER>)
geschickt wird.
Sobald dies geschen ist, horcht der Webserver auf Port <POTNUMMER>
(in unserem Fall 7777
)
auf HHTP-Requests. Sobald ein Browser oder sonst irgend ein Client eine derartige Anfrage schickt, wird die
Callback-Funktion aufgerufen, die bei der Definition des Servers angegeben wurde. Diese Funktion
muss zwei Parameter haben: p_request
und p_response
.
Das Objekt p_request
enthält alle Daten, die der Client an den Server schickt,
in das Objekt p_response
schreibt der Server seine antwort.
Eine Server-Antwort besteht immer aus zwei Teilen: einem HTTP-Header und einem HTTP-Content.
Der HTTP-Header enthält Metainformationen:
- Den HTTP-Status-Code (z.B. 200 für „OK“ = „Die Anfrage konnte erfolgreich bearbeitet werden und das Anfrage-Ergebnis steh im Contetn-Bereich.“)
- Den
Content-Type
(z.B. text/html; charset=utf-8
)
- Die
Content-Length
(die Länge der Antwort im Content-Bereich)
- etc.
Der eigentliche Content ist dann eine beliebige Folge von Zeichen, in userem Fall ein HTML-Code.
Der Browser liest davon so viele Zeichen, wie im Header unter dem Attribut Content-Length
angegeben wurden.
Diese Attribut wird vom Node-HTTP-Server automatisch ermittelt.
Verarbeitung von Benutzerdaten
Um Benutzerdaten verarbeiten zu können, muss im Server auf das Objekt p_request
zugegriffen werden. Die könnte natürlich direkt erfolgen, es ist aber sinnvoller, ein Modul
wie z.B. mulitparts
oder formidable
zu verwenden, das einem die Arbeit ein wenig erleichtert.
Im folgenden Beispiel wird das Modul formidable
verwendet.
Diese Modul muss zunächst installiert werden. Am einfachsten erfolgt dies über die Bash-Konsole:
npm install -g formidable@latest
Spätestens wenn Sie Webstorm neu starten, sollte auch Webstorm das neue Node.js-Modul gefunden haben:
File
→ Settings
→ Languages & Frameworks
→ Node.js and NPM
Fortsetzung des Tutoriums
Sie sollten nun Teil 3 des Tutoriums bearbeiten.
Quellen
- Kowarschick (MMProg): Wolfgang Kowarschick; Vorlesung „Multimedia-Programmierung“; Hochschule: Hochschule Augsburg; Adresse: Augsburg; Web-Link; 2018; Quellengüte: 3 (Vorlesung)
Siehe auch