// LERNEN · SPRACHEN & FRAMEWORKS
Node.js
Ein praxisnaher Node.js-Kurs vom ersten Skript und dem Aufsetzen eines Projekts bis zu HTTP-APIs, Streams, Tests, Leistung und Sicherheit. Jedes Beispiel wird mit der aktuellen LTS-Version ausgeführt.
Niveau: Einstieg bis Vertiefung · Für: Entwicklerinnen und Entwickler mit JavaScript-Grundlagen, die Kommandozeilenwerkzeuge und Dienste mit Node.js bauen möchten.
Lehrplan
Einstieg
Vollständig
Nach dieser Stufe können Sie
- Ein Node.js-Projekt aufsetzen, das im beabsichtigten Modulsystem läuft, mit Skripten in package.json und Konfiguration aus --env-file
- Ein Kommandozeilenwerkzeug schreiben, das Argumente mit util.parseArgs auswertet, Dateien mit node:fs/promises liest und schreibt und mit einem aussagekräftigen Exit-Code endet
- Callbacks, Promises und async/await richtig kombinieren, Aufgaben parallel ausführen und Ablehnungen behandeln
- Unit-Tests mit dem eingebauten Test-Runner node:test und node:assert schreiben und ausführen
B1Node ausführen und Projektgrundlagen5 von 5 geschrieben · 5 LektionenLäuft auf Ihrem Rechner
Ein Projekt aufsetzen, das läuft, seine Konfiguration liest und laut scheitert
Sie bauen: Ein kleines Kommandozeilenwerkzeug mit Argumenten
B2npm und Pakete5 von 5 geschrieben · 5 LektionenLäuft auf Ihrem Rechner
Abhängigkeiten und Skripte reproduzierbar verwalten
Sie bauen: Ein Hilfspaket mit eigenem Testskript
B3Dateien und Pfade5 von 5 geschrieben · 5 LektionenLäuft auf Ihrem Rechner
Dateien sicher lesen, schreiben und ordnen
Sie bauen: Eine Notiz-Kommandozeile, die JSON auf der Festplatte speichert
B4Asynchrones Node5 von 5 geschrieben · 5 LektionenLäuft auf Ihrem Rechner
Asynchrone Vorgänge richtig kombinieren, nacheinander und parallel
Sie bauen: Ein paralleler Bericht über Ordnergrößen
B5Ereignisse, Eingaben und erste Tests5 von 5 geschrieben · 5 LektionenLäuft auf Ihrem Rechner
Auf Ereignisse reagieren, Benutzereingaben lesen und das Ergebnis testen
Sie bauen: Eine getestete To-do-Kommandozeile
Projekt der Stufe Einstieg
Logbuch-Kommandozeile
Ein Journal für die Kommandozeile, das Einträge mit Schlagwörtern in einer JSON-Datei hinzufügt, auflistet, filtert und exportiert, bei einer beschädigten Datei klar scheitert und eine node:test-Suite hat.
Läuft auf Ihrem RechnerSelbst geprüft anhand einer Checkliste
Zur ProjektanleitungAufbau
Demnächst verfügbar
Nach dieser Stufe können Sie
- Eine JSON-HTTP-API nur mit node:http bauen, mit Routing, Einlesen des Bodys, Statuscodes und geordnetem Herunterfahren
- Große Dateien mit Streams und pipeline() verarbeiten und dabei Backpressure beachten
- Einen HTTP-Dienst mit node:test testen, mit Mocks, simulierten Timern und Abdeckung, und andere Dienste mit fetch aufrufen
- TypeScript-Dateien direkt mit dem Type Stripping von Node.js ausführen und sie getrennt mit tsc prüfen
I1HTTP mit node:httpDemnächst verfügbar · 6 LektionenLäuft auf Ihrem Rechner
JSON über HTTP ohne Framework bereitstellen und abrufen
Sie bauen: Eine REST-API für Notizen
- I1.1Demnächst verfügbar
- I1.2Demnächst verfügbar
- I1.3Demnächst verfügbar
- I1.4Demnächst verfügbar
- I1.5Demnächst verfügbar
- I1.6Demnächst verfügbar
I2Buffer und StreamsDemnächst verfügbar · 5 LektionenLäuft auf Ihrem Rechner
Daten verarbeiten, die größer als der Arbeitsspeicher sind
Sie bauen: Ein streamender Konverter von CSV nach NDJSON
- I2.1Demnächst verfügbar
- I2.2Demnächst verfügbar
- I2.3Demnächst verfügbar
- I2.4Demnächst verfügbar
- I2.5Demnächst verfügbar
I3Tests im DetailDemnächst verfügbar · 5 LektionenLäuft auf Ihrem Rechner
Dienste isoliert und mit Abdeckung testen
Sie bauen: Eine Testsuite für die Notiz-API mit einer Abdeckungsschwelle
- I3.1Demnächst verfügbar
- I3.2Demnächst verfügbar
- I3.3Demnächst verfügbar
- I3.4Demnächst verfügbar
- I3.5Demnächst verfügbar
I4Fehler, Prozesse und KonfigurationDemnächst verfügbar · 5 LektionenLäuft auf Ihrem Rechner
Fehler und Signale wie ein Produktionsdienst behandeln
Sie bauen: Ein Task-Runner, der Befehle startet
- I4.1Demnächst verfügbar
- I4.2Demnächst verfügbar
- I4.3Demnächst verfügbar
- I4.4Demnächst verfügbar
- I4.5Demnächst verfügbar
I5TypeScript mit Node.jsDemnächst verfügbar · 5 LektionenLäuft auf Ihrem Rechner
TypeScript mit Node.js ausführen und die Typen prüfen
Sie bauen: Die Notiz-Kommandozeile nach TypeScript portieren
- I5.1Demnächst verfügbar
- I5.2Demnächst verfügbar
- I5.3Demnächst verfügbar
- I5.4Demnächst verfügbar
- I5.5Demnächst verfügbar
Projekt der Stufe Aufbau
Linkprüfer-API
Ein node:http-Dienst, der eine Liste von URLs mit fetch bei begrenzter Nebenläufigkeit prüft, die Ergebnisse als NDJSON streamt und bei SIGTERM sauber herunterfährt.
Läuft auf Ihrem RechnerSelbst geprüft anhand einer Checkliste
Vertiefung
Demnächst verfügbar
Nach dieser Stufe können Sie
- Blockaden der Ereignisschleife, Speicherlecks und Hotspots mit dem Inspector, CPU-Profilen, Heap-Snapshots und perf_hooks finden und beheben
- CPU-lastige Arbeit in Worker-Threads auslagern und erklären, wann cluster oder Kindprozesse besser passen
- Einen Dienst mit dem Berechtigungsmodell, node:crypto für Hashes und Tokens, Eingabeprüfung und Abhängigkeitsprüfung absichern
- Eine Bibliothek mit bedingten exports paketieren und veröffentlichen und ein Kommandozeilenwerkzeug als einzelne ausführbare Datei ausliefern
A1Ereignisschleife und LeistungDemnächst verfügbar · 5 LektionenLäuft auf Ihrem Rechner
Blockaden der Ereignisschleife finden und beseitigen
Sie bauen: Einen langsamen Endpunkt beheben und es mit Zahlen belegen
- A1.1Demnächst verfügbar
- A1.2Demnächst verfügbar
- A1.3Demnächst verfügbar
- A1.4Demnächst verfügbar
- A1.5Demnächst verfügbar
A2NebenläufigkeitDemnächst verfügbar · 5 LektionenLäuft auf Ihrem Rechner
Worker-Threads und Prozesse dort einsetzen, wo sie helfen
Sie bauen: Ein Hash-Dienst abseits des Hauptthreads
- A2.1Demnächst verfügbar
- A2.2Demnächst verfügbar
- A2.3Demnächst verfügbar
- A2.4Demnächst verfügbar
- A2.5Demnächst verfügbar
A3Debugging und DiagnoseDemnächst verfügbar · 5 LektionenLäuft auf Ihrem Rechner
Laufende Prozesse und Speicherprobleme untersuchen
Sie bauen: Ein Speicherleck in einem Beispieldienst finden und beheben
- A3.1Demnächst verfügbar
- A3.2Demnächst verfügbar
- A3.3Demnächst verfügbar
- A3.4Demnächst verfügbar
- A3.5Demnächst verfügbar
A4SicherheitDemnächst verfügbar · 6 LektionenLäuft auf Ihrem Rechner
Einen Node.js-Dienst absichern
Sie bauen: Ein abgesicherter Dateidienst
- A4.1Demnächst verfügbar
- A4.2Demnächst verfügbar
- A4.3Demnächst verfügbar
- A4.4Demnächst verfügbar
- A4.5Demnächst verfügbar
- A4.6Demnächst verfügbar
A5Daten und AuslieferungDemnächst verfügbar · 5 LektionenLäuft auf Ihrem Rechner
Daten lokal mit node:sqlite speichern und Code an andere ausliefern
Sie bauen: Das Kommandozeilenwerkzeug des Abschlussprojekts paketieren
- A5.1Demnächst verfügbar
- A5.2Demnächst verfügbar
- A5.3Demnächst verfügbar
- A5.4Demnächst verfügbar
- A5.5Demnächst verfügbar
Projekt der Stufe Vertiefung
Job-Warteschlange mit Workern
Ein Dienst, der CPU-lastige Jobs in einem Worker-Pool ausführt, ihren Zustand in node:sqlite speichert, einen Neustart übersteht und unter dem Berechtigungsmodell läuft.
Läuft auf Ihrem RechnerSelbst geprüft anhand einer Checkliste
Abschlussprojekt
Abschlussprojekt
Ein selbst gehosteter Dienst Ihrer Wahl
Ein kleiner Dienst, etwa ein RSS-Reader, der HTTP, Streams, Speicherung, Tests, TypeScript und Sicherheit verbindet und als Paket oder einzelne ausführbare Datei veröffentlicht wird.
Läuft auf Ihrem RechnerSelbst geprüft anhand einer Checkliste
Quellen
- Node.js v24 API documentation
- Node.js: Previous releases (englisch)
- Modules: Packages, Einstiegspunkte und Selbstreferenz (Node.js-v24-Dokumentation, englisch)
- Modules: ECMAScript modules, import.meta.dirname (Node.js-v24-Dokumentation; englisch)
- Modules: CommonJS modules, eingebaute Module mit Pflicht-Präfix node: (Node.js v24 Dokumentation; englisch)
- Command-line API: --test, --test-only, --test-name-pattern, --test-reporter (Node.js-v24-Dokumentation; englisch)
- Process: process.cwd() (Node.js-v24-Dokumentation; englisch)
- Run Node.js scripts from the command line (Node.js Learn; englisch)
- How to use the Node.js REPL (Node.js Learn; englisch)
- REPL (Node.js v24 documentation; englisch)
- Command-line API: --watch and --watch-path (Node.js v24 documentation; englisch)
- Util: util.parseArgs([config]) (Node.js v24 documentation; englisch)
- Errors: Weitergabe von Fehlern und ERR_MULTIPLE_CALLBACK (Node.js-v24-Dokumentation; englisch)
- Output to the command line using Node.js (Node.js Learn; englisch)
- Console: console.log, console.info, console.error, console.warn (Node.js v24 documentation; englisch)
- Process: process.stdout, process.stderr and a note on process I/O (Node.js v24 documentation; englisch)
- Process: process.exit(), process.exitCode and exit codes (Node.js v24 documentation; englisch)
- Stream: writable.write() (Node.js v24 documentation; englisch)
- Util: util.parseArgs([config]) (Node.js-v24-Dokumentation; englisch)
- Command-line API: --env-file and --env-file-if-exists (Node.js v24 documentation; englisch)
- Command-line API: --run and its intentional limitations (Node.js v24 documentation; englisch)
- Process: process.exitCode and exit codes (Node.js v24 documentation; englisch)
- An introduction to the npm package manager (Node.js Learn; englisch)
- npm-init (npm Docs, npm 11; englisch)
- package.json: files, exports, main und lokale Pfade (npm Docs, npm 11, englisch)
- scripts (npm Docs, npm 11; englisch)
- npm-run (npm Docs, npm 11; englisch)
- npm-test (npm Docs, npm 11; englisch)
- npm-install: Ordner und Tarballs (npm Docs, npm 11, englisch)
- package-lock.json (npm Docs, npm 11; englisch)
- npm-ci (npm Docs, npm 11; englisch)
- npm-uninstall (npm Docs, npm 11; englisch)
- folders (npm Docs, npm 11; englisch)
- npx (npm Docs, npm 11; englisch)
- About semantic versioning (npm Docs; englisch)
- node-semver README: Ranges, Tilde, Caret, X-Ranges, Prerelease-Tags (npm, verlinkt aus den npm Docs; englisch)
- npm-outdated (npm Docs, v11; englisch)
- npm-update (npm Docs, v11; englisch)
- Modules: ECMAScript modules, import.meta und JSON-Module (Node.js v24 Dokumentation; englisch)
- Modules: ECMAScript modules, node:-Importe und eingebaute Module (Node.js v24 Dokumentation; englisch)
- Test runner (Node.js-v24-Dokumentation; englisch)
- npm-pack (npm Docs, npm 11, englisch)
- Node.js File Paths (Node.js Learn; englisch)
- Path: path.join(), path.resolve(), path.posix und path.win32 (Node.js-v24-Dokumentation; englisch)
- URL: url.fileURLToPath() und url.pathToFileURL() (Node.js-v24-Dokumentation; englisch)
- File system: Promise-, Callback- und synchrone Form (Node.js-v24-Dokumentation; englisch)
- Reading files with Node.js (Node.js Learn; englisch)
- File system: fsPromises.readFile() und fs.readFileSync() (Node.js-v24-Dokumentation; englisch)
- Writing files with Node.js (Node.js Learn; englisch)
- File system: fsPromises.writeFile() und fsPromises.appendFile() (Node.js-v24-Dokumentation; englisch)
- File system: Flags des Dateisystems (Node.js-v24-Dokumentation; englisch)
- File system: fs.rename(), fsPromises.readdir() und fsPromises.rm() (Node.js-v24-Dokumentation; englisch)
- Working with folders in Node.js (Node.js Learn; englisch)
- Node.js file stats (Node.js Learn; englisch)
- File system: fsPromises.readdir() und fs.Stats (Node.js-v24-Dokumentation; englisch)
- File system: fs.stat(), fsPromises.lstat() und fs.Stats (Node.js-v24-Dokumentation; englisch)
- File system: fsPromises.access() (Node.js-v24-Dokumentation; englisch)
- File system: fsPromises.rmdir(), fsPromises.rm() und fsPromises.cp() (Node.js-v24-Dokumentation; englisch)
- Errors: common system errors (Node.js-v24-Dokumentation; englisch)
- Process: process.exitCode (Node.js-v24-Dokumentation; englisch)
- JavaScript Asynchronous Programming and Callbacks (Node.js Learn; englisch)
- Asynchronous flow control (Node.js Learn; englisch)
- Discover Promises in Node.js: Advanced Promise Methods (Node.js Learn; englisch)
- Util: util.promisify(original) (Node.js-v24-Dokumentation; englisch)
- Timers: Timers Promises API (Node.js-v24-Dokumentation; englisch)
- File system: Callback API (Node.js-v24-Dokumentation; englisch)
- Process: Event 'unhandledRejection' und Exit-Codes (Node.js-v24-Dokumentation; englisch)
- Command-line API: --unhandled-rejections=mode (Node.js-v24-Dokumentation; englisch)
- Errors: error.cause (Node.js-v24-Dokumentation; englisch)
- File system: Klasse FileHandle und filehandle.close() (Node.js-v24-Dokumentation; englisch)
- Modules: ECMAScript modules, Top-Level-await (Node.js-v24-Dokumentation; englisch)
- File system: Promises API (Node.js-v24-Dokumentation; englisch)
- The Node.js Event Loop (Node.js Learn; englisch)
- Timers (Node.js-v24-Dokumentation; englisch)
- Process: process.nextTick() und queueMicrotask() (Node.js-v24-Dokumentation; englisch)
- The Node.js Event emitter (Node.js Learn; englisch)
- Events (Node.js-v24-Dokumentation; englisch)
- Accept input from the command line in Node.js (Node.js Learn; englisch)
- Readline (Node.js-v24-Dokumentation; englisch)
- Discovering Node.js's test runner (Node.js Learn; englisch)
- Assert (Node.js-v24-Dokumentation; englisch)
- Using Node.js's test runner (Node.js Learn; englisch)