[S11L1] REST, Express Flashcards
Warum gibt es Node.js?
- JavaScript Server Side
- Ermöglicht es Server Programm zu schreiben wie mit C++, Java, Python etc
- Ermöglicht es Backend Web Server zu bauen
Gab es schon immer JavaScript Server Side?
- Nein, früher lief es nur im Browser
- Erst 2009 wurde JavaScript außerhalb des Browsers ermöglicht
Mit welchen Mittel sendet ein Node.js backend Daten an ein Front End?
-Mittels JSON (JavaScript Object Notation)
Was sind die Vorteile von Node.js?
- 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
Was sind die Nachteile von Node.js?
- 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
Wie startet man Node?
-node
Was ist der Unterschied zwischen Window Console und Console?
- Im Browser sind alle Functionen unter window verfügbar
- In der Console alle unter console
Kann man auch ohne Express einen Server mit Node.js schreiben?
Ja, es wird nur sehr selten getan
-Man benutzt Node.js HTTP Module um Netzwerk Operationen weg zu abstrahieren
-
Was macht npm i ?
Installiert alle Dependencies aus Package.JSON
Was ist NPM?
Das offizielle Pckage Mangager von Node, wird mit Node.js ausgeliefert
Was ist ein Server?
-Ein Computer, der auf Traffic lauscht und dann eine Antwort darauf gibt
Wie importiert man das HTTP Module in plain Node.js und schreibt einen basic server?
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}
);
});
Wie nennt man req und res als Argumente für eine HTTP function?
-Homies
Wie führt man Dateien mit Node aus?
node dataname.js
Was ist Express?
- 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
Was ist nodemon?
- Ein kleiner Server der genutzt wird unsere Applikation in einer Development Umgebung zu nutzen.
- Nodemon aktualisiert den Server bei jeder Änderung automatisch
Was ist ein Module?
- 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’)
Was ist ein Module?
- 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
Was bedeutet eine Cannot GET / Response für einen Server?
-Es wurde ein GET HTTP Request gestellt an / (main route) und dafür kennt der Server keine Antwort
Wie sind die Homies aufgebaut?
server. get(‘/’, (req, res)
- Der erste req ist die Response vom Client zu unserem Server
- Das Zweite res ist die Antwort
Was sind die Vorteile von Express?
-Sehr leichtgewichtig, nicht opionated, macht Web Server sehr trivial
Wofür kann man Express nutzen?
- 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
Was ist HTTP status?
-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
Was ist das Core/Haupt Feature von Express?
-==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