[S11L3] Express Middleware Flashcards
Was ist Middleware?
- Das größte Feature von Express
- Functions die Software erweitern
- Der meiste Code den man schreibt, wie z.B., Route Handler ist Middleware
- Ist wie ein Array aus Functions der in der Reihe nacheinander ausgeführt wird
-Was ist besonders an Express Middleware?
-Kompatibel mit connect middleware
Was ist Connect?
- Eine Web Appliaction Framework für Node.js, welches nur das Middleware Layer anbietet
- Hat ein großes Ökosystem und Nutzerbasis
- Wenn man kein Express Package findet, kann man ein Connect Package für Middleware suchen
Welche Arten von Express Middleware gibt es?
- Eingebaute Express Middleware
- Third Party Middleware (NPM)
- Custom Middleware (Selber geschrieben)
Was ist Built-In Middleware?
- Kommt mit Express von Haus aus
- Muss nur leicht konfiguriert werden
- Beispiel: server.use(express.json());
- Alle Endpoints des Server werden danach davon betroffen sein und JSON sprechen können
Was ist Third Party Middleware?
-NPM Modules die installiert und importiert werden können mit require();
-Tausende Modules, welche einen nicht das Rad neu erfinden lassen müssen
-Bekannte Packages sind:
Morgan (Wer benutzt die API)
CORS (Cross Origin Resource Sharing für Kommunukation zwischen verschiedenen URLs)
Helmet (Security)
Was ist Custom Middleware?
-Wird selber geschrieben
Warum sollte man seine eigene Custom Middleware schreiben?
- Spezielle Funktionalitäten die es so noch nicht gibt
- Mehr Freiheit und kann das eigene Verhalten der Software besser steuern
- Erlaubt es Express einfach zu erweitern ohne Express selber zu verändern
Welche Arten von Custom Middleware gibt es?
- Regular Middleware
- Error Handling Middleware
Wie viele Argumente akzeptiert reguläre Middleware und wie viele Error Handling Middleware?
- Regulare Middleware 3 Arguments (res, req, next)
- Error Handling Middleware 4 Arguments
Wie sieht eine Logger Middleware aus?
function logger(req, res, next) { console.log(`[${new Date().toISOString()}] ${req.method} to $[req.url} from ${req.get('Origin')}`); next(); }
Was macht die next Function einer Middleware?
- next() ist eine Function die der Middleware sagt, wann man bereit ist zur nächsten Middleware der Warteschlange weiterzugehene
- Es ist ein callback und eine Banananame, aber man sollte es trotzdem next() nennen
Was passiert wenn eine Middleware nicht next() callt?
- Die Response wird sich aufhängen und der Client ein TimeOutError erhalten
- Wenn man nicht next invoken möchte kann man res.send() oder res.json benutzen um die Response zurückzusenden
Warum gibt es Error Handling Middleware?
- Um Nutzern zu sagen, dass die die Software nicht richtig bedienen
- Oder um zu wissen, das etwas kaputt ist oder eine Weile brauchen kann
Was ist die Convention für Error Handling Middleware?
Ein Single Argument das ein Error Object ist,wie dieses: next(new Error('error message'));