Springer | Node.js | E-Book | www.sack.de
E-Book

E-Book, Deutsch, 1000 Seiten

Reihe: Rheinwerk Computing

Springer Node.js

Das umfassende Handbuch
5. Auflage 2025
ISBN: 978-3-367-10836-7
Verlag: Rheinwerk
Format: PDF
Kopierschutz: 0 - No protection

Das umfassende Handbuch

E-Book, Deutsch, 1000 Seiten

Reihe: Rheinwerk Computing

ISBN: 978-3-367-10836-7
Verlag: Rheinwerk
Format: PDF
Kopierschutz: 0 - No protection



Meistern Sie Node.js, die führende Plattform für serverseitiges JavaScript! In diesem umfassenden Handbuch begleitet Sie Sebastian Springer von den ersten Grundlagen bis zu fortgeschrittenen Techniken Schritt für Schritt. Anhand zahlreicher praxisnaher Beispiele lernen Sie, wie Sie robuste und skalierbare Webanwendungen entwickeln. Finden Sie Antworten auf Ihre täglichen Herausforderungen und profitieren Sie von Expertenwissen und bewährten Lösungen. Die fünfte, umfassend aktualisierte und erweiterte Auflage stellt sicher, dass Sie mit den neuesten Entwicklungen arbeiten.

Aus dem Inhalt:

  • Grundlagen und Installation
  • Node.js-Module verwenden
  • Node Package Manager (z. B. NPM, Yarn)
  • Erfolgreich arbeiten mit Nest.js
  • Asynchrone Programmierung
  • Anbindung von Datenbanken
  • GraphQL nutzen
  • Performance, Testing, Qualitätssicherung
  • Skalierbarkeit und Deployment
  • Deno und Bun kennenlernen
  • Node.js und KI
  • Verschlüsselung


Die Fachpresse zur Vorauflage:
regetskcob.blog: »Ob zur Weiterbildung oder als Nachschlagewerk, dieses Buch gehört in das Bücherregal eines jeden Webentwicklers, oder jeder Webentwicklerin. Mit dem Wissen aus diesem Werk ist ein Application-Server mit Datenbankanbindung und ReST API im Nu erstellt.«



Sebastian Springer ist JavaScript-Engineer bei MaibornWolff. Als Dozent lehrt er JavaScript an der Technischen Hochschule Rosenheim. Er publiziert regelmäßig in Fachzeitschriften, schreibt Fachbücher zu Node.js und ist ein gefragter Speaker auf allen wichtigen JavaScript- und Webentwickler-Konferenzen. Sebastian Springer bietet auch Seminare zu JavaScript und Node.js an und ist Trainer für mehrere Rheinwerk Webinare.
Springer Node.js jetzt bestellen!

Autoren/Hrsg.


Weitere Infos & Material


Materialien zum Buch ... 23  Vorwort ... 25  1.  Grundlagen ... 29  1.1 ... Die Geschichte von Node.js ... 31  1.2 ... Die Organisation von Node.js ... 36  1.3 ... Versionierung von Node.js ... 37  1.4 ... Stärken von Node.js ... 39  1.5 ... Einsatzgebiete von Node.js ... 40  1.6 ... Die wichtigsten Merkmale von Node.js ... 41  1.7 ... Das Herzstück -- die V8-Engine ... 42  1.8 ... Bibliotheken um die Engine ... 49  1.9 ... Zusammenfassung ... 55  2.  Installation ... 57  2.1 ... Node.js-Versionierung ... 58  2.2 ... Installation mit dem Installer ... 60  2.3 ... Installation über den Paketmanager des Systems ... 62  2.4 ... Einsatz eines Version-Managers ... 63  2.5 ... Node.js in einem Container ausführen ... 68  2.6 ... Zusammenfassung ... 77  3.  Ein erstes Beispiel ... 79  3.1 ... REPL -- die interaktive Shell von Node.js ... 79  3.2 ... Die erste Applikation ... 88  3.3 ... Debuggen von Node.js-Applikationen ... 99  3.4 ... Entwicklungswerkzeug »nodemon« ... 110  3.5 ... Node.js im Watch-Modus ... 111  3.6 ... Zusammenfassung ... 114  4.  Node.js-Module ... 117  4.1 ... Modularer Aufbau ... 117  4.2 ... Kernmodule ... 120  4.3 ... JavaScript-Modulsysteme ... 146  4.4 ... Eigene Module erzeugen und verwenden ... 151  4.5 ... Module dynamisch laden ... 164  4.6 ... Zusammenfassung ... 165  5.  HTTP ... 167  5.1 ... Das HTTP-Protokoll ... 167  5.2 ... Der Webserver ... 168  5.3 ... Node.js als HTTP-Client ... 203  5.4 ... Sichere Kommunikation mit HTTPS ... 211  5.5 ... HTTP/2 ... 213  5.6 ... Zusammenfassung ... 224  6.  Express ... 227  6.1 ... Aufbau ... 227  6.2 ... Installation ... 229  6.3 ... Grundlagen ... 230  6.4 ... Architektur einer Express-Applikation ... 234  6.5 ... Filmdatenbank ... 237  6.6 ... Middleware ... 247  6.7 ... Dynamische Routen -- Löschen von Datensätzen ... 254  6.8 ... Anlegen und Bearbeiten von Datensätzen -- Zugriff auf den Request-Body ... 257  6.9 ... Validierung von Eingaben mit Zod ... 265  6.10 ... Express 5 ... 269  6.11 ... HTTPS und HTTP/2 ... 271  6.12 ... Zusammenfassung ... 273  7.  Template-Engines ... 277  7.1 ... Template-Engines in der Praxis -- Pug ... 278  7.2 ... Handlebars ... 294  7.3 ... Zusammenfassung und Ausblick ... 299  8.  Anbindung von Datenbanken ... 301  8.1 ... Node.js und relationale Datenbanken ... 302  8.2 ... Node.js und nicht relationale Datenbanken ... 326  8.3 ... Zusammenfassung ... 342  9.  Authentifizierung und Sessionhandling ... 345  9.1 ... Passport ... 345  9.2 ... Setup und Konfiguration ... 346  9.3 ... Anmeldung an der Applikation ... 350  9.4 ... Zugriff auf Ressourcen ... 360  9.5 ... Externer Identity Provider ... 372  9.6 ... Zusammenfassung ... 378

10.  REST-Server ... 381  10.1 ... REST -- eine kurze Einführung und wie es in Webapplikationen verwendet wird ... 381  10.2 ... Zugriff auf die Applikation ... 382  10.3 ... Anpassungen an der Applikationsstruktur ... 384  10.4 ... Lesende Anfragen ... 385  10.5 ... Schreibende Anfragen ... 396  10.6 ... Authentifizierung mit JSON Web Tokens ... 407  10.7 ... Einbindung eines externen Identity Providers ... 415  10.8 ... OpenAPI-Spezifikation -- Dokumentation mit Swagger ... 419  10.9 ... Validierung ... 424  10.10 ... Zusammenfassung ... 430

11.  GraphQL ... 433  11.1 ... GraphQL-Bibliotheken ... 434  11.2 ... Integration in Express ... 435  11.3 ... Daten über die Schnittstelle auslesen ... 440  11.4 ... Schreibende Zugriffe auf die GraphQL-Schnittstelle ... 446  11.5 ... Mit Subscriptions Updates in Echtzeit erhalten ... 453  11.6 ... Authentifizierung für die GraphQL-Schnittstelle ... 457  11.7 ... Zusammenfassung ... 462

12.  Echtzeit-Webapplikationen ... 465  12.1 ... Die Beispielapplikation ... 466  12.2 ... Setup ... 466  12.3 ... WebSockets ... 473  12.4 ... Node.js als WebSocket-Client ... 487  12.5 ... Socket.IO ... 488  12.6 ... Zusammenfassung ... 494

13.  Typsichere Applikationen in Node.js ... 497  13.1 ... Typsysteme für Node.js ... 498  13.2 ... Werkzeuge und Konfiguration ... 501  13.3 ... TypeScript-Grundlagen ... 506  13.4 ... Klassen ... 512  13.5 ... Interfaces ... 515  13.6 ... Type Aliases in TypeScript ... 517  13.7 ... Generics ... 519  13.8 ... TypeScript im Einsatz in einer Node.js-Applikation ... 520  13.9 ... Native TypeScript-Unterstützung in Node.js ... 523  13.10 ... Zusammenfassung ... 525

14.  Webapplikationen mit Nest ... 527  14.1 ... Installation und erste Schritte mit Nest ... 528  14.2 ... Die Nest CLI ... 530  14.3 ... Struktur der Applikation ... 534  14.4 ... Module -- logische Einheiten im Quellcode ... 536  14.5 ... Controller -- die Endpunkte einer Applikation ... 539  14.6 ... Providers -- die Businesslogik der Applikation ... 543  14.7 ... Validierung ... 548  14.8 ... Zugriff auf Datenbanken ... 551  14.9 ... Dokumentation der Endpunkte mit OpenAPI ... 559  14.10 ... Authentifizierung ... 563  14.11 ... Ausblick: Testen in Nest ... 571  14.12 ... Zusammenfassung ... 574

15.  Node für Kommandozeilenwerkzeuge ... 577  15.1 ... Grundlagen ... 577  15.2 ... Der Aufbau einer Kommandozeilenapplikation ... 580  15.3 ... Zugriff auf Ein- und Ausgabe ... 585  15.4 ... Werkzeuge ... 594  15.5 ... Signale ... 605  15.6 ... Exit Codes ... 608  15.7 ... Zusammenfassung ... 609

16.  Asynchrone Programmierung ... 611  16.1 ... Externe Kommandos mit dem »child-process«-Modul asynchron ausführen ... 611  16.2 ... Node.js-Kindprozesse erzeugen mit »fork« ... 620  16.3 ... Das »cluster«-Modul ... 626  16.4 ... Worker-Threads ... 635  16.5 ... Zusammenfassung ... 640

17.  Streams ... 643  17.1 ... Einleitung ... 643  17.2 ... Readable Streams ... 647  17.3 ... Writable Streams ... 660  17.4 ... Duplex-Streams ... 668  17.5 ... Transform-Streams ... 672  17.6 ... Web Streams API ... 674  17.7 ... Zusammenfassung ... 683

18.  Arbeiten mit Dateien ... 685  18.1 ... Synchrone und asynchrone Funktionen ... 685  18.2 ... Existenz von Dateien ... 687  18.3 ... Dateien lesen ... 688  18.4 ... Fehlerbehandlung ... 693  18.5 ... In Dateien schreiben ... 695  18.6 ... Verzeichnisoperationen ... 699  18.7 ... Weiterführende Operationen ... 702  18.8 ... Zusammenfassung ... 710

19.  Paketmanager ... 713  19.1 ... Die häufigsten Operationen ... 714  19.2 ... Weiterführende Operationen ... 733  19.3 ... Werkzeuge für NPM ... 744  19.4 ... Corepack ... 748  19.5 ... Yarn ... 749  19.6 ... pnpm ... 750  19.7 ... Zusammenfassung ... 751

20.  Qualitätssicherung ... 753  20.1 ... Styleguides ... 754  20.2 ... Linter ... 756  20.3 ... Prettier ... 762  20.4 ... PMD CPD ... 763  20.5 ... Husky ... 766  20.6 ... Zusammenfassung ... 767

21.  Testing ... 769  21.1 ... Unittesting ... 769  21.2 ... Assertion Testing ... 772  21.3 ... Der Node Test Runner ... 778  21.4 ... Vitest ... 781  21.5 ... Praktisches Beispiel von Unittests mit »Vitest« ... 792  21.6 ... Umgang mit Abhängigkeiten -- Mocking ... 799  21.7 ... Zusammenfassung ... 802

22.  Sicherheitsaspekte ... 803  22.1 ... »filter input« und »escape output« ... 804  22.2 ... Absicherung des Servers ... 807  22.3 ... NPM-Sicherheit ... 829  22.4 ... Schutz des Clients ... 833  22.5 ... Das Node.js Permission System ... 838  22.6 ... Zusammenfassung ... 840

23.  Skalierbarkeit und Deployment ... 843  23.1 ... Vorbereitung für die Produktion ... 843  23.2 ... Deployment-Grundlagen und -Strategien ... 849  23.3 ... Die Anwendung am Laufen halten und überwachen ... 860  23.4 ... Skalierung ... 864  23.5 ... Zusammenfassung ... 872

24.  Performance ... 873  24.1 ... YAGNI -- You Ain't Gonna Need It ... 873  24.2 ... CPU ... 874  24.3 ... Zeitmessung in Node.js ... 877  24.4 ... Arbeitsspeicher ... 882  24.5 ... Netzwerk ... 889  24.6 ... Zusammenfassung ... 893

25.  JavaScript Runtimes ... 895  25.1 ... Deno ... 895  25.2 ... Bun ... 916  25.3 ... Zusammenfassung ... 925

26.  Künstliche Intelligenz mit Node.js nutzen ... 927  26.1 ... Überblick über Generative AI ... 927  26.2 ... LLMs nutzen ... 931  26.3 ... Ein Chatbot auf der Kommandozeile ... 939  26.4 ... Multimodale LLMs ... 942  26.5 ... Modulare Applikationen mit LangChain ... 944  26.6 ... Das Model Context Protocol ... 953  26.7 ... Zusammenfassung ... 964  Index ... 965


Springer, Sebastian
Sebastian Springer ist JavaScript-Engineer bei MaibornWolff. Als Dozent lehrt er JavaScript an der Technischen Hochschule Rosenheim. Er publiziert regelmäßig in Fachzeitschriften, schreibt Fachbücher zu Node.js und ist ein gefragter Speaker auf allen wichtigen JavaScript- und Webentwickler-Konferenzen. Sebastian Springer bietet auch Seminare zu JavaScript und Node.js an und ist Trainer für mehrere Rheinwerk Webinare.



Ihre Fragen, Wünsche oder Anmerkungen
Vorname*
Nachname*
Ihre E-Mail-Adresse*
Kundennr.
Ihre Nachricht*
Lediglich mit * gekennzeichnete Felder sind Pflichtfelder.
Wenn Sie die im Kontaktformular eingegebenen Daten durch Klick auf den nachfolgenden Button übersenden, erklären Sie sich damit einverstanden, dass wir Ihr Angaben für die Beantwortung Ihrer Anfrage verwenden. Selbstverständlich werden Ihre Daten vertraulich behandelt und nicht an Dritte weitergegeben. Sie können der Verwendung Ihrer Daten jederzeit widersprechen. Das Datenhandling bei Sack Fachmedien erklären wir Ihnen in unserer Datenschutzerklärung.