Content
Was ist Node.js
Node.js ist eine Laufzeitumgebung für in JavaScript geschriebene Programme und verwendet Chrome's V8 JavaScript engine.
Vorbereitung
- Node.js installieren: https://nodejs.org/en/download/
- Visual Studio code installieren: https://code.visualstudio.com/
Erster Webservice (Minimalbeispiel)
Im folgenden wird ein minimal node.js Webservice mit Express erstellt.
git bash
#Ordner für Projekt erstellen
mkdir samplewebservice
#In Ordner wechseln
cd samplewebservice
#Gitignore file herunterladen
curl https://raw.githubusercontent.com/nodejs/node/master/.gitignore > .gitignore
#Project initialisieren (nach bedarf eigene Einstellungen vornehmen, ansonsten alles abnicken)
npm init
#Express framework installieren
npm install express
Öffne nun Visual Studio Code und öffne den erstellten ordner.
Erstelle nun die Datei app.js mit folgendem Inhalt:
var express = require('express');
var app = express();
//Erste route -> http://localhost:3000/
app.get('/', function (req, res) {
res.send('Hello World!');
});
//Startet den Server und hört auf Port 3000
app.listen(3000, function () {
console.log('Example app listening on port 3000!');
});
Server starten:
node app.js
Server verwenden
- Browser:
http://localhost:3000
- git-bash:
curl http://localhost:3000
Http Protocoll
Das Hypertext Transfer Protocol (HTTP, englisch für Hypertext-Übertragungsprotokoll) ist ein zustandsloses Protokoll zur Übertragung von Daten auf der Anwendungsschicht über ein Rechnernetz. Es wird hauptsächlich eingesetzt, um Webseiten (Hypertext-Dokumente) aus dem World Wide Web (WWW) in einen Webbrowser zu laden.
Aufbau eines Http requests
[METHODE] [ROUTE] [HTTP_PROTOKOLL_VERSION]
Host: [HOSTNAME]
[HEADER_KEY_1]: [HEADER_VALUE_1]
[HEADER_KEY_2]: [HEADER_VALUE_2]
[HEADER_KEY_3]: [HEADER_VALUE_3]
[BODY optional]
Http Request Beispiel
Möglicherweise nicht in git-bash verfügbar
- http:
telnet [hostname]
- https:
openssl s_client -connect [hostname]:https
GET / HTTP/1.1
Host: www.vol.at
Wichtige Http Methoden
- GET (Etwas abholen - Kein Request Body)
- DELETE (Etwas löschen - Kein Request Body)
- PUT (Etwas ändern - mit Request Body)
- POST (Etwas hinzufügen - mit Request Body)
Dateiformat Json
- Javascript object notation
- Wird zur Datenübertragung mit Webservices verwendet
- Besteht aus Key/Value Paaren und Arrays
Beispiel
Witz
{ text: "Das ist ein mieser Witz", author: "Alfons", approved: true, ranking: 1.0 }
Witz Array
[
{ text: "Das ist ein mieser Witz", author: "Alfons", approved: true, ranking: 1.0 },
{ text: "Das ist ein mieser Witz2", author: "Alfons", approved: true, ranking: 1.0 },
{ text: "Das ist ein mieser Witz3", author: "Alfons", approved: true, ranking: 1.0 },
{ text: "Das ist ein mieser Witz4", author: "Alfons", approved: true, ranking: 1.0 }
]