Boilerplate project for a basic ExpressJS webserver

Christian Kahlau 41e0e5a08b changed sirius urls to hostbbq 1 year ago
.vscode 9dec004282 Initial Commit - Simpler echo service mit gängigen bodyparsern 3 years ago
private 664d02bd48 Implementierung ChatController nun auf File-Basis (statt Array In-Memory) 3 years ago
public a004ede07d Beispielimplementierung "Chat" zur Veranschaulichung von XSRF-Token-Security 3 years ago
scripts 41e0e5a08b changed sirius urls to hostbbq 1 year ago
src c7ddad5f64 Standard HttpStatusException Handling in webserver.class.ts 3 years ago
.env 664d02bd48 Implementierung ChatController nun auf File-Basis (statt Array In-Memory) 3 years ago
.gitignore 664d02bd48 Implementierung ChatController nun auf File-Basis (statt Array In-Memory) 3 years ago
.prettierrc.js 28e232d4a5 prettierrc typo "tabWdith" korrigiert 3 years ago
Readme.md 41e0e5a08b changed sirius urls to hostbbq 1 year ago
package.json 307d48e9c8 Umbau auf Router/Handler Architektur; Basis-Implementierung Public/Private Page + Login/Logout; Readme updated 3 years ago
tsconfig.json 9dec004282 Initial Commit - Simpler echo service mit gängigen bodyparsern 3 years ago

Readme.md

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-Endpoint
    • -> Schicke einen Request ab und erhalte als Antwort genau deine Request-Daten zurück
  • Ein einfacher fileserver unter /*
    • -> Liefert die files aus dem Projektverzeichnis unter public per URL aus
  • Ein einfacher login-Bereich unter /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/*-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

    $ cd ~/Development/my-new-webserver
    
  3. (Optional) Initialisiere ein Git-Repository

    $ git init
    
  4. Installiere das Boilerplate Projekt

    $ curl --silent https://gogs.hostbbq.com/hostbbq/express-starter/raw/master/scripts/init.js | node -
    

⚠️ Besonderheit unter Windows / Git Bash:

damit Pipes funktionieren, muss der Befehl in einer "sh" Shell ausgeführt werden:

$ /bin/sh -c "curl --silent https://gogs.hostbbq.com/hostbbq/express-starter/raw/master/scripts/init.js | node -"

Webserver starten

Terminal (bash) im Projekt-Root öffnen:

$ 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.