# NodeJS + Express Boilerplate ## About Dieses Projekt beinhaltet eine sog. Boilerplate, mit der sich schnell ein Webserver-Projekt auf NodeJS+Express Basis initialisieren lässt. Der Server beinhaltet Grundfunktionalität, also: - Ein einfacher [/echo](http://localhost:8999/echo)-Endpoint - -> Schicke einen Request ab und erhalte als Antwort genau deine Request-Daten zurück - Ein einfacher `fileserver` unter [`/*`](http://localhost:8999/) - -> Liefert die files aus dem Projektverzeichnis unter `public` per URL aus - Ein einfacher `login`-Bereich unter [/login/\*](http://localhost:8999/login/) - -> Zeigt die Handhabung von Sessions und Authentifizierung in NodeJS+Express - XSRF-Token-Security für `POST`, `PUT`, `PATCH` und `DELETE` -Endpoints - -> Veranschaulicht im "Chat" des [/login/\*](http://localhost:8999/login/)-Bereichs _... behalte und erweitere, was du brauchst - schmeiß' raus, was nicht._ ## How To ### Voraussetzungen - Installation: NodeJS & NPM - Installation: Git SCM - Sauber eingerichtete SSH-Schlüsselpaar-Authentifizierung für Bitbucket ### Installation 1. Erstelle einen leeren Ordner in deinem Entwicklungsbereich - z.B. `~/Development/my-new-webserver` 2. Öffne ein (bash) Terminal und wechsle in den neuen Ordner ```bash $ cd ~/Development/my-new-webserver ``` 3. (Optional) Initialisiere ein Git-Repository ```bash $ git init ``` 4. Installiere das Boilerplate Projekt ```bash $ curl --silent https://bitbucket.siriusonline.de/projects/TSC/repos/express-starter/raw/scripts/init.js | node - ``` > ⚠️ Besonderheit unter Windows / Git Bash: > > damit Pipes funktionieren, muss der Befehl in einer "sh" Shell ausgeführt werden: ```bash $ /bin/sh -c "curl --silent https://bitbucket.siriusonline.de/projects/TSC/repos/express-starter/raw/scripts/init.js | node -" ``` ### Webserver starten Terminal (bash) im Projekt-Root öffnen: ```bash $ npm start # --- Ausgabe: ---- > my-new-webserver@1.0.0 start > npm run build && node dist/index.js > my-new-webserver@1.0.0 build > tsc -b Example app listening on http://localhost:8999 ``` Ét voilà - damit sollte der Webserver lokal auf Port 8999 laufen.