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



Hochperformante Webanwendungen mit JavaScript

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.

  • Professionelle Web-Backends entwickeln
  • Installation, Grundlagen, Best Practices
  • Debugging, Skalierung, Qualitätssicherung
  • Aktuell zu Version 24

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
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.