LU15c – Erster Express-Server mit Node.js

Learning Objectives

Unser erster Express-Server

Öffnen Sie die Datei index.js und fügen Sie folgenden Code ein:

import express from 'express';
 
const app = express();
const port = 3000;
 
// Route für GET-Anfragen auf "/"
app.get('/', (req, res) => {
    res.send('Hello World');
});
 
// Server starten und auf Port 3000 auf Anfragen warten
app.listen(port, () => {
    console.log(`Example app listening on port ${port}`);
});

Was passiert in diesem Code?

res = Response-Objekt (Antwort, die Sie zurückschicken).

Das Schema zeigt, wie ein Zusammenspiel aus Anfrage (Request) und Antwort (Response) zwischen Client und Server funktioniert.

Server starten und im Browser testen

  1. Öffnen Sie in WebStorm das Terminal (Projektordner).
  2. Starten Sie den Server mit:
node index.js
  1. Im Terminal sollte erscheinen: Example app listening on port 3000
  2. Öffnen Sie Ihren Browser und geben Sie ein: http://localhost:3000/
  3. Sie sollten nur das Wort Hello World im Browser sehen.
  4. Server stoppen: Im Terminal Strg + C (Windows/Linux) oder ctrl + C (macOS) drücken.

Wichtig: Wir haben keinen „klassischen“ Webauftritt programmiert

Zentrale Idee

Sie haben in dieser Learning Unit kein HTML, kein CSS und kein JavaScript für den Browser geschrieben. Sie haben JavaScript für den Server geschrieben.

  • Der Browser spielt hier nur die Rolle eines Clients, der eine Anfrage an Ihren Server sendet.
  • Der Express-Server beantwortet diese Anfrage mit einer Antwort (Response).
  • Der Browser zeigt einfach an, was im Response-Body steht (in unserem Fall der Text Hello World.).

Später werden Sie:

Entwickler-Komfort: npm-Scripts & nodemon

Wenn Sie nach jeder Codeänderung den Server mit node index.js neu starten müssen, ist das mühsam. Dafür gibt es zwei Hilfsmittel:

1. nodemon installieren

Installieren Sie nodemon als Entwicklungs-Tool:

npm install --save-dev nodemon

Dadurch ergänzt npm Ihre package.json um einen Eintrag unter devDependencies für nodemon.

Was bedeutet devDependencies?

In package.json gibt es zwei wichtige Bereiche für Pakete:

nodemon ist ein typisches Entwicklungs-Tool: Es hilft Ihnen beim Programmieren (automatischer Neustart bei Änderungen), wird aber auf einem späteren Produktionsserver nicht benötigt. Darum speichern wir es mit –save-dev in den devDependencies.

2. Scripts in ''package.json'' ergänzen

Öffnen Sie package.json und ergänzen Sie den Abschnitt scripts wie folgt (Beispiel, wie im Screenshot oben):

"scripts": {
  "start": "node index.js",
  "dev": "nodemon index.js"
}

Damit definieren Sie zwei Startvarianten:

Wenn Sie nun in index.js (oder Ihrer Server-Datei) etwas ändern und speichern, startet nodemon den Server bei npm run dev automatisch neu. Sie müssen node index.js nicht jedes Mal von Hand ausführen.

node_modules & IDE-Hinweise

In den nächsten Learning Units werden Sie: