[S11L1] REST, Express Flashcards

1
Q

Warum gibt es Node.js?

A
  • JavaScript Server Side
  • Ermöglicht es Server Programm zu schreiben wie mit C++, Java, Python etc
  • Ermöglicht es Backend Web Server zu bauen
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Gab es schon immer JavaScript Server Side?

A
  • Nein, früher lief es nur im Browser

- Erst 2009 wurde JavaScript außerhalb des Browsers ermöglicht

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

Mit welchen Mittel sendet ein Node.js backend Daten an ein Front End?

A

-Mittels JSON (JavaScript Object Notation)

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

Was sind die Vorteile von Node.js?

A
  • JavaScript auf dem Server und gleiche Sprache im Full Stack
  • Single Threaded (Weniger Komplexität mit Threads)
  • Asynchronous, kann den ganzen CPU voll nutzen
  • NPM libraries bietet größte Package Library überhaupt
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Was sind die Nachteile von Node.js?

A
  • Es verleitet einen immer Node.js für Backend zu wählen, obwohl andere Sprachen eine bessere Wahl wären
  • Nur Single Threaded, kann nicht MultiThread Server voll ausnutzen
  • Asynchronous: Schwerer zu lernen für Entwickler die nur Synchronous Operations kennen
  • NPM Registry: Zu viele Packages die das gleiche machen. Qual der Wahl und Vulnerabilities leichter eingebaut
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Wie startet man Node?

A

-node

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

Was ist der Unterschied zwischen Window Console und Console?

A
  • Im Browser sind alle Functionen unter window verfügbar

- In der Console alle unter console

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

Kann man auch ohne Express einen Server mit Node.js schreiben?

A

Ja, es wird nur sehr selten getan
-Man benutzt Node.js HTTP Module um Netzwerk Operationen weg zu abstrahieren
-

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

Was macht npm i ?

A

Installiert alle Dependencies aus Package.JSON

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

Was ist NPM?

A

Das offizielle Pckage Mangager von Node, wird mit Node.js ausgeliefert

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

Was ist ein Server?

A

-Ein Computer, der auf Traffic lauscht und dann eine Antwort darauf gibt

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

Wie importiert man das HTTP Module in plain Node.js und schreibt einen basic server?

A

const http = require(‘http’);

const hostname = '127.0.0.1';
const port = 3000;
const server = http.createServer((req, res) => {
res.statusCode = 200;
res.setHeader("Content", 'text/plain')
res.end('Hello World, from NodeJS')
}

server.listen(port, hostname, () => {
console.log(‘server listening on http://${hostname}:${port});
});

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

Wie nennt man req und res als Argumente für eine HTTP function?

A

-Homies

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

Wie führt man Dateien mit Node aus?

A

node dataname.js

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

Was ist Express?

A
  • Express ist ein JavaScript Framework, welches auf NodeJS Web Server sitzt
  • Ist die React nur für das Backend
  • Baut auf das Raw HTTP von NodeJS auf
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Was ist nodemon?

A
  • Ein kleiner Server der genutzt wird unsere Applikation in einer Development Umgebung zu nutzen.
  • Nodemon aktualisiert den Server bei jeder Änderung automatisch
17
Q

Was ist ein Module?

A
  • Ein ES2015 Module wird über import express from ‘exrpess’ installiert
  • Doch Node.js unterstützt ES2015 Modules nicht, daher muss es über common js system

-const express = require(‘express’)

18
Q

Was ist ein Module?

A
  • Ein ES2015 Module wird über import express from ‘exrpess’ installiert
  • Doch Node.js unterstützt ES2015 Modules nicht, daher muss es über CommonJS Modules
  • const express = require(‘express’)
  • Die beiden Importarten sind Äquivalent, Node kann aber nur das letzte
19
Q

Was bedeutet eine Cannot GET / Response für einen Server?

A

-Es wurde ein GET HTTP Request gestellt an / (main route) und dafür kennt der Server keine Antwort

20
Q

Wie sind die Homies aufgebaut?

A

server. get(‘/’, (req, res)
- Der erste req ist die Response vom Client zu unserem Server
- Das Zweite res ist die Antwort

21
Q

Was sind die Vorteile von Express?

A

-Sehr leichtgewichtig, nicht opionated, macht Web Server sehr trivial

22
Q

Wofür kann man Express nutzen?

A
  • Single Page Applications bedienen( SPA)
  • RESTful Web Applications bauen die mit JSON arbeiten
  • Statische Seiten Content wie HTML dateien, Bilder, Files und PDFs liefern
  • Real-Time Apps mit Technologien wie Web Sockets und WebRTC bedienen
23
Q

Was ist HTTP status?

A

-Response HTTP Status
-Ein Agreement über semantischen Code zwischen Client und Server
HTTP status ranges in a nutshell:
1xx: hold on
2xx: here you go
3xx: go away
4xx: you fucked up
5xx: I fucked up

24
Q

Was ist das Core/Haupt Feature von Express?

A

-==Middleware==
-Functions die Request und Response erhalten und darauf Operationen ausführen können
-Nach den Operationen kann zu neuer Middleware order die Response zurück zum Client gegeben werden
-Express Middleware Stack ist ein Array aus Functions
-==Routing==
-Macht es leicht übersichtlich welche Request Handler Function ausgeführt wird, abhängig von der URL und er genutzten HTTP Methode
-Applications können in Routers aufgeteilt werden. Ein einzelner Route kann unsere SPA und unsere API bedienen.
-Jeder Route kann seine Middleware und sein Routing haben
==Convenience Helpers==
-Erweitert Funktionen für Request und Response
-response.redirect(), response.status, response.send, request.ip
==Views==
-Rendered HTML dynamisch auf dem Server und generiert es auch in anderen Sprachen

25
Q

Was sind übliche Middleware Functions?

A
  • Requests Loggen

- Security durch Authentication

26
Q

Wie kann man Dateien aus einem Request für den Server lesen?

A

-Aus dem Body der Request (req.body)

-

27
Q

Was macht Middleware?

A

Erweitert die Funktionalitäten z.B. von Express

28
Q

Muss Middleware immer den Request oder eine Response verändern?

A

-Nein, tut es aber meistens

29
Q

Was ist in req.params enthalten?

A

-Alle Infos aus der URL, z.B. eine ID für dynamische URLs

30
Q

Was bedeutet der Status Code 204?

A
  • No Content, es wurde kein Content zurückgeschickt

- Meistens sendet man ein res.end() mit um zu sagen, dass die Verbindung beendet ist und es in Ordnung war

31
Q

Wie funktioniert req.params?

A

server.delete(‘/hubs/:id’, (req, res) => {
const { id } = req.params;

Der Server nimmt was auch immer der Request mitgeliefert hat und stellt es under id bereit, weil es in unserer Route so definiert ist :id

32
Q

Was ist eine API?

A
  • Application Programming Interface
  • API ist Server Software, welche eine Zahl an Endpoints bereitstellt
  • Clients können APIs nutzen um ihre Resources zu managen
33
Q

Was ist ein Endpoint?

A

-Für Web APIs sind Endpoints URLs, welche zu der Location einer Resource auf einem Server zeigt

34
Q

Was ist eine URL?

A

URL (Uniform Resource Locator), ist eine Adresse, welche zu einer Location einer Resource auf einem Server zeigt

35
Q

Was ist eine Resource?

A
  • Dinge die unsere Application interessiert
  • Nouns in Application Domain
  • Zum Beispiel: Users, Products, Orders, Clients, Returns
36
Q

Was ist Postman?

A
  • Ein Client um APIs zu testen
  • Ähnlich wie CURL, aber mit einer guten GUI
  • Postman gibt volle Kontrolle über das Testen von APIs