[S11L3] Express Middleware Flashcards

1
Q

Was ist Middleware?

A
  • 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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

-Was ist besonders an Express Middleware?

A

-Kompatibel mit connect middleware

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Was ist Connect?

A
  • 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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Welche Arten von Express Middleware gibt es?

A
  • Eingebaute Express Middleware
  • Third Party Middleware (NPM)
  • Custom Middleware (Selber geschrieben)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Was ist Built-In Middleware?

A
  • 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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Was ist Third Party Middleware?

A

-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)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Was ist Custom Middleware?

A

-Wird selber geschrieben

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Warum sollte man seine eigene Custom Middleware schreiben?

A
  • 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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Welche Arten von Custom Middleware gibt es?

A
  • Regular Middleware

- Error Handling Middleware

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Wie viele Argumente akzeptiert reguläre Middleware und wie viele Error Handling Middleware?

A
  • Regulare Middleware 3 Arguments (res, req, next)

- Error Handling Middleware 4 Arguments

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Wie sieht eine Logger Middleware aus?

A
function logger(req, res, next) {
console.log(`[${new Date().toISOString()}] ${req.method} to $[req.url} from ${req.get('Origin')}`);
next();
}
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Was macht die next Function einer Middleware?

A
  • 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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Was passiert wenn eine Middleware nicht next() callt?

A
  • 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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Warum gibt es Error Handling Middleware?

A
  • Um Nutzern zu sagen, dass die die Software nicht richtig bedienen
  • Oder um zu wissen, das etwas kaputt ist oder eine Weile brauchen kann
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Was ist die Convention für Error Handling Middleware?

A
Ein Single Argument das ein Error Object ist,wie dieses:
next(new Error('error message'));
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Wie schreibt man Error Handling Middleware?

A

next(new Error(‘error message’));, req, res, next()

  • Wenn das Error Handling erledigt ist kann man auswählen den request zu beenden oder next ohne argumente fortzuführen um weitere Middleware zu starten
  • Man wird nur zu Error Handling Middleware gebracht, wenn man ein Argument in next() einfügt

if(error) {
next(err);
}

17
Q

An welcher Stelle in der Middleware Warteschlange muss Error Handling Middleware sein?

A

-Error Handling Middleware kann überall im Stack vorkommen, aber wenn man Error an jeder Stelle des Servers abfangen will muss die Error Handing Middleware an das Ende der Middleware Warteschlange