M295 Backend Entwicklung - Grundlagen Dokumentation¶
Diese Dokumentation fasst die ersten Schritte in der Node.js Backend-Entwicklung zusammen. Wir haben uns das Dateisystem (fs) sowie die Erstellung eines einfachen Webservers (http) angesehen.
1. Dateisystem (FS Module)¶
Node.js bietet das fs (File System) Modul, um Dateien zu lesen und zu schreiben. Es gibt zwei Hauptwege, dies zu tun: Synchron und Asynchron.
Synchron vs. Asynchron¶
Wichtiger Unterschied
Synchron (readFileSync): Blockiert den Code. Der nächste Befehl wird erst ausgeführt, wenn die Datei fertig gelesen ist.
Asynchron (readFile): Blockiert nicht. Der Code läuft weiter, und das Ergebnis wird später über eine "Callback-Funktion" bereitgestellt.
const fs = require('fs');
// === SYNCHRON ===
// Programm wartet hier, bis die Datei geladen ist
const syncData = fs.readFileSync('./txt/demo.txt', 'utf-8');
console.log('Synchron gelesen:', syncData);
// === ASYNCHRON ===
// Programm läuft sofort weiter (Non-Blocking)
fs.readFile('./txt/demo.txt', 'utf-8', (err, asyncData) => {
if (err) return console.log('Fehler:', err);
console.log('Asynchron (Callback):', asyncData);
});
console.log('Dieser Code läuft, während die Datei noch geladen wird!');
2. HTTP Server erstellen¶
Um einen Webserver zu starten, verwenden wir das native http Modul von Node.js.
Server Setup¶
Wir können einen Server erstellen, der auf Anfragen (Requests) reagiert und Antworten (Responses) zurücksendet.
Localhost
Die IP-Adresse 127.0.0.1 steht für den "Localhost", also den eigenen Computer.
const http = require('http');
// Server erstellen
const server = http.createServer((req, res) => {
// req = Request (Anfrage vom Browser)
// res = Response (Antwort vom Server)
// Antwort an den Client senden
res.end('World from the server');
});
// Server starten und auf Port 8002 lauschen
server.listen(8002, '127.0.0.1', () => {
console.log('Server läuft! Lausche auf Port 8002...');
});
Server ausführen¶
Um den Server zu starten, nutzen wir den Node.js Befehl im Terminal:
Der Server ist dann im Browser unter http://127.0.0.1:8002 erreichbar.