Installieren Sie die genialokal App auf Ihrem Startbildschirm für einen schnellen Zugriff und eine komfortable Nutzung.
Tippen Sie einfach auf Teilen:
Und dann auf "Zum Home-Bildschirm [+]".
Bei genialokal.de kaufen Sie online bei Ihrer lokalen, inhabergeführten Buchhandlung!
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.
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
Alternativbeschreibungen
Kurze Alternativtexte
Navigation
Inhaltsverzeichnis mit Links