Bühne frei für Node.js! Dieses Buch ist Ihr umfassender Begleiter für die Arbeit mit der am weitesten verbreiteten und von zahlreichen großen Unternehmen eingesetzten serverseitigen JavaScript-Plattform. An leicht verständlichen Beispielen lernen Sie alle Aspekte von Node.js kennen von den Grundlagen bis zum Profi-Wissen! Hier finden Sie zahlreiche Tipps und Lösungen zu alltäglichen Problemen in der Webentwicklung. Für die vierte Auflage wurde das Buch umfassend aktualisiert und erweitert. 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 Microservices mit Node.js Deno kennen lernen

Debugging, Skalierung, Qualitätssicherung

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

Inhalt
Materialien zum Buch ... 23 Geleitwort ... 25 Vorwort ... 27 1. Grundlagen ... 31 1.1 ... Die Geschichte von Node.js ... 33 1.2 ... Die Organisation von Node.js ... 38 1.3 ... Versionierung von Node.js ... 39 1.4 ... Vorteile von Node.js ... 41 1.5 ... Einsatzgebiete von Node.js ... 42 1.6 ... Das Herzstück -- die V8-Engine ... 43 1.7 ... Bibliotheken um die Engine ... 50 1.8 ... Zusammenfassung ... 57 2. Installation ... 59 2.1 ... Installation von Paketen ... 60 2.2 ... Kompilieren und installieren ... 74 2.3 ... Node Version Manager ... 76 2.4 ... Node und Docker ... 77 2.5 ... Zusammenfassung ... 78 3. Ein erstes Beispiel ... 79 3.1 ... Der interaktive Modus ... 79 3.2 ... Die erste Applikation ... 86 3.3 ... Debuggen von Node.js-Applikationen ... 96 3.4 ... Entwicklungswerkzeug »nodemon« ... 107 3.5 ... Zusammenfassung ... 108 4. Node.js-Module ... 109 4.1 ... Modularer Aufbau ... 109 4.2 ... Kernmodule ... 112 4.3 ... JavaScript-Modulsysteme ... 132 4.4 ... Eigene Module erzeugen und verwenden ... 135 4.5 ... Zusammenfassung ... 148 5. HTTP ... 149 5.1 ... Der Webserver ... 149 5.2 ... Node.js als HTTP-Client ... 178 5.3 ... Sichere Kommunikation mit HTTPS ... 182 5.4 ... HTTP/2 ... 184 5.5 ... Zusammenfassung ... 189 6. Express ... 191 6.1 ... Aufbau ... 191 6.2 ... Installation ... 192 6.3 ... Grundlagen ... 194 6.4 ... Setup ... 196 6.5 ... Movie-Datenbank ... 199 6.6 ... Middleware ... 209 6.7 ... Erweitertes Routing -- Löschen von Datensätzen ... 214 6.8 ... Anlegen und Bearbeiten von Datensätzen -- Body-Parser ... 217 6.9 ... Express 5 ... 224 6.10 ... HTTPS und HTTP/2 ... 225 6.11 ... Zusammenfassung ... 228 7. Template-Engines ... 229 7.1 ... Eine eigene Template-Engine ... 230 7.2 ... Template-Engines in der Praxis -- Pug ... 232 7.3 ... Handlebars ... 247 7.4 ... Zusammenfassung und Ausblick ... 257 8. Anbindung von Datenbanken ... 259 8.1 ... Node.js und relationale Datenbanken ... 260 8.2 ... Node.js und nicht relationale Datenbanken ... 280 8.3 ... Zusammenfassung ... 293 9. Authentifizierung und Sessionhandling ... 295 9.1 ... Passport ... 295 9.2 ... Setup und Konfiguration ... 296 9.3 ... Anmeldung an der Applikation ... 300 9.4 ... Zugriff auf Ressourcen ... 308 9.5 ... Zusammenfassung ... 317 10. REST-Server ... 319 10.1 ... REST -- eine kurze Einführung und wie es in Webapplikationen verwendet wird ... 319 10.2 ... Zugriff auf die Applikation ... 320 10.3 ... Anpassungen an der Applikationsstruktur ... 322 10.4 ... Lesende Anfragen ... 323 10.5 ... Schreibende Anfragen ... 334 10.6 ... Authentifizierung mit JSON Web Tokens ... 342 10.7 ... OpenAPI-Spezifikation -- Dokumentation mit Swagger ... 351 10.8 ... Validierung ... 355 10.9 ... Zusammenfassung ... 362 11. GraphQL ... 363 11.1 ... GraphQL-Bibliotheken ... 364 11.2 ... Integration in Express ... 365 11.3 ... Daten über die Schnittstelle auslesen ... 369 11.4 ... Schreibende Zugriffe auf die GraphQL-Schnittstelle ... 374 11.5 ... Authentifizierung für die GraphQL-Schnittstelle ... 380 11.6 ... Zusammenfassung ... 382 12. Echtzeit-Webapplikationen ... 383 12.1 ... Die Beispielapplikation ... 384 12.2 ... Setup ... 385 12.3 ... Websockets ... 391 12.4 ... Socket.IO ... 404 12.5 ... Zusammenfassung ... 410 13. Typsichere Applikationen in Node.js ... 411 13.1 ... Typsysteme für Node.js ... 412 13.2 ... Werkzeuge und Konfiguration ... 419 13.3 ... Grundlagen ... 425 13.4 ... Klassen ... 430 13.5 ... Interfaces ... 433 13.6 ... Type Aliases in TypeScript ... 435 13.7 ... Generics ... 436 13.8 ... TypeScript im Einsatz in einer Node.js-Applikation ... 438 13.9 ... Zusammenfassung ... 440 14. Webapplikationen mit Nest ... 441 14.1 ... Installation und erste Schritte mit Nest ... 442 14.2 ... Die Nest CLI ... 444 14.3 ... Struktur der Applikation ... 448 14.4 ... Module -- logische Einheiten im Quellcode ... 450 14.5 ... Controller -- die Endpunkte einer Applikation ... 453 14.6 ... Providers -- die Businesslogik der Applikation ... 458 14.7 ... Zugriff auf Datenbanken ... 462 14.8 ... Dokumentation der Endpunkte mit OpenAPI ... 470 14.9 ... Authentifizierung ... 473 14.10 ... Ausblick: Testen in Nest ... 480 14.11 ... Zusammenfassung ... 483 15. Node auf der Kommandozeile ... 485 15.1 ... Grundlagen ... 485 15.2 ... Der Aufbau einer Kommandozeilenapplikation ... 488 15.3 ... Zugriff auf Ein- und Ausgabe ... 493 15.4 ... Werkzeuge ... 503 15.5 ... Signale ... 510 15.6 ... Exit Codes ... 513 15.7 ... Zusammenfassung ... 514 16. Asynchrone Programmierung ... 515 16.1 ... Grundlagen asynchroner Programmierung ... 515 16.2 ... Externe Kommandos asynchron ausführen ... 521 16.3 ... Node.js-Kindprozesse erzeugen mit »fork« ... 527 16.4 ... Das »cluster«-Modul ... 532 16.5 ... Worker-Threads ... 541 16.6 ... Promises in Node.js ... 544 16.7 ... Async Functions ... 552 16.8 ... Zusammenfassung ... 555 17. RxJS ... 557 17.1 ... Grundlagen ... 558 17.2 ... Operatoren ... 564 17.3 ... Subjects ... 581 17.4 ... Scheduler ... 582 17.5 ... Zusammenfassung ... 583 18. Streams ... 585 18.1 ... Einleitung ... 585 18.2 ... Readable Streams ... 589 18.3 ... Writable Streams ... 601 18.4 ... Duplex-Streams ... 609 18.5 ... Transform-Streams ... 611 18.6 ... Gulp ... 613 18.7 ... Zusammenfassung ... 615 19. Arbeiten mit Dateien ... 617 19.1 ... Synchrone und asynchrone Funktionen ... 617 19.2 ... Existenz von Dateien ... 619 19.3 ... Dateien lesen ... 620 19.4 ... Fehlerbehandlung ... 626 19.5 ... In Dateien schreiben ... 627 19.6 ... Verzeichnisoperationen ... 631 19.7 ... Weiterführende Operationen ... 634 19.8 ... Zusammenfassung ... 640 20. Socket-Server ... 641 20.1 ... Unix-Sockets ... 642 20.2 ... Windows Pipes ... 649 20.3 ... TCP-Sockets ... 650 20.4 ... UDP-Sockets ... 657 20.5 ... Zusammenfassung ... 662 21. Package Manager ... 663 21.1 ... Die häufigsten Operationen ... 664 21.2 ... Weiterführende Operationen ... 677 21.3 ... Werkzeuge für NPM ... 685 21.4 ... Yarn ... 688 21.5 ... Zusammenfassung ... 689 22. Qualitätssicherung ... 691 22.1 ... Styleguides ... 692 22.2 ... Linter ... 693 22.3 ... Prettier ... 699 22.4 ... PMD CPD ... 700 22.5 ... Husky ... 703 22.6 ... Zusammenfassung ... 704 23. Testing ... 705 23.1 ... Unittesting ... 705 23.2 ... Assertion Testing ... 708 23.3 ... Jasmine ... 714 23.4 ... Jest ... 723 23.5 ... Praktisches Beispiel von Unittests mit »Jest« ... 726 23.6 ... Umgang mit Abhängigkeiten -- Mocking ... 731 23.7 ... Zusammenfassung ... 734 24. Sicherheitsaspekte ... 735 24.1 ... »filter input« und »escape output« ... 736 24.2 ... Absicherung des Servers ... 739 24.3 ... NPM-Sicherheit ... 758 24.4 ... Schutz des Clients ... 761 24.5 ... Zusammenfassung ... 766 25. Skalierbarkeit und Deployment ... 767 25.1 ... Deployment ... 767 25.2 ... Toolunterst…
Titel
Node.js
Untertitel
Das umfassende Handbuch
EAN
9783836287678
Format
E-Book (epub)
Hersteller
Veröffentlichung
26.11.2021
Digitaler Kopierschutz
frei
Dateigrösse
22 MB
Anzahl Seiten
896
Lesemotiv