· 

Server programmieren: Erste Schritte zum Node JS Server

Noch nie einen Server selbst programmiert? In diesem Artikel findest du die ersten Schritte zu deinem ersten Server. Der Artikel beschreibt zunächst grob, was ein Server ist. Danach kommt die Bauanleitung für deinen eigenen Server und abschließend ein paar Worte wieso Node JS ein super Programmiersprache für diesen Zweck ist und abschließend noch ein paar weitere Werkzeuge, die in der Entwicklung von Servern nützlich sind. Viel Spaß beim Lesen 😃

Was ist ein Server?

Ein Server ist schlichtweg ein Computer der über das Internet (oder das lokale Netzwerk) erreichbar ist. Die Kommunikation erfolgt in der Regel über das sogenannte Internet Protocol (kurz IP) und das Transmission Control Protocol (kurz TCP). Ersteres ist für die Adressierung der Computer im Internet mittels IP-Adressen zuständig (Domain-Namen wie beispielsweise www.david-benjamin-hentschel.de werden in IP-Adressen übersetzt). Das zweite Protokoll sorgt für die korrekte Übermittlung der Daten. Mehr Infos findest du unter dem TCP-/IP-Referenzmodell.

Damit Anfragen vom Computer verarbeitet werden, muss der Computer Ports freigeben. Ein Port kann auf einer beliebigen Nummer, wie beispielsweise Port 80 (Standard-Port für HTTP), geöffnet werden. Es ist quasi wie ein Bahnhof, an dem nur ausgewählte Gleise geöffnet sind. Anfragen werden von der Netzwerkkarte nur akzeptiert, wenn sie auf einen geöffneten Port gerichtet sind. Die Anwendung die diesen Port geöffnet hat, kann dann die Anfrage weiterverarbeiten. Und genau das soll im nächsten Schritt geschehen...

Schnell zum ersten Server

  1. Node JS installieren (das findest du unter nodejs.org, alles kostenlos natürlich)
  2. Öffne die Eingabeaufforderung (oder Command Prompt unter Windows, oder das Terminal unter Linux oder Apple)
  3. Teste ob node richtig installiert ist mit "node -v"
    1. $> node -v
    2. $> v6.9.5
  4. Initialisiere ein neues node Projekt (erstellt die Datei package.json mit Informationen über das Projekt)
    1. $> node init
  5. Installiere das Paket Express JS
    1. $> npm install express.js
  6. Erstelle die Datein index.js
    1. const express = require("express")   // importiert die Funktionsbibliothek in eine Konstante
    2. const app = express()                           // initialisiert einen Server
    3. app.get((req, res, next) => {                // registriert eine anonyme Funktion, die auf HTTP-GET Anfragen reagiert
    4.     res.send("Hallo Welt")                     // req steht für Request bzw. Anfrage, res steht für Response bzw. Antwort
    5. })
    6. app.listen(80)                                         // lässt den Server auf dem Port 80 lauschen
  7. Starte den Server mit "node start" oder "node index.js" in der Eingabeaufforderung und gehe zu http://localhost:80

Et voilà, hier ist dein erster selbst programmierter Webserver. Express JS ist eine von vielen anderen Bibliotheken für node js Server. Es wird aber in der Industrie häufig eingesetzt und bietet jede Menge Funktionalitäten und eine sehr gute Dokumentation (siehe http://expressjs.com/de/).

Warum Node JS?

Node JS ist eine einfache Skriptsprache und basiert auf JavaScript. Es ist sehr geeignet für Einsteiger um grundlegende Prinzipien von Programmiersprachen, wie bspw. Variablen, Funktion und Objekte kennen zulernen. Außerdem muss nicht viel installiert oder konfiguriert werden um schnell den Code ausführen zu können.

 

Ein weiterer praktischer Vorteil zeigt sich beim Betrieb von Webservern. Hier ist der Vorteil das die Sprache in der Benutzeroberfläche (auf Webseiten) die selbe ist wie auf dem Server. Somit muss nicht zwischen zwei Sprachen hin un her gewechselt werden.

 

Node JS ist nicht nur schnell gelernt und angewendet, sondern es kann auch gut für größere Anwendungen skalieren. Das gilt einerseits für den Code, indem Module verwendet werden, aber auch für Server die viele Anfragen abbekommen. Ein häufiger Kritikpunkt ist die lose Typisierung bei JavaScript, die für große Projekte unpraktisch sein kann. Dies kann aber zum Beispiel mit TypeScript gelöst werden (siehe https://www.typescriptlang.org/).

Weitere nützliche Tools

Für die Entwicklung von Webservern ist natürlich dein Browser ein wichtiges Werkzeug zum Testen deiner Anwendung. Der Chrome Browser hat beispielsweise eine sehr gute Übersicht über den Quellcode und einen sehr guten Debugger (siehe hier).

 

Ein anderes geniales Werkzeug ist Postman. Mit Postman kannst du alle HTTP-Methoden mit all möglichen Parametern und so weiter testen. Es ist sogar möglich Erwartungswerte für bestimmte Routen zu definieren und diese Tests dann automatisch durchzuführen. Auf der Webseite findest du eine gute Dokumentation und alle Informationen zur installation: https://www.getpostman.com/.

 

Sobald mehrere Personen an einem Projekt arbeiten, empfehle ich eine Software zur Versionsverwaltung zu benutzen. Das vermutlich am weitesten verbreitetste ist Git (siehe https://git-scm.com/) in Kombination mit beispielsweise GitHub (siehe https://github.com/). So könnt ihr Änderungen leicht teilen, im Internet auf GitHub anschauen und parallel an verschiedenen Funktionen arbeiten.

 

Zu guter letzt mein Lieblings-Werkzeug in letzter Zeit: Docker. Docker ist eine Software zur Virtualisierung von Programmen. Sprich es wird ein kleiner Linux Computer gestartet, in dem dann zum Beispiel unser Web-Server von oben ausgeführt wird. Der große Vorteil ist, dass immer der selbe Kontext benutzt wird und das Programm dann auf jeden Computer ausgeführt werden kann, auf dem auch Docker läuft. Super wenn mehrere Personen an einem Projekt arbeiten.

 

Kommentar schreiben

Kommentare: 2
  • #1

    Birgit (Montag, 08 Januar 2018 17:37)

    Macht Lust zum sofortigen Ausprobieren! Danke für deine Tipps, David

  • #2

    aurelius (Dienstag, 30 April 2024 17:50)

    ich möchte ein spiel ab 16 brgramieren und habe schon ahnung könnte ich einen browser oder einen link für eine seite zum brogramieren danke