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

E-Book, Deutsch, 896 Seiten

Reihe: Rheinwerk Computing

Springer Node.js

Das umfassende Handbuch
4. Auflage 2021
ISBN: 978-3-8362-8767-8
Verlag: Rheinwerk
Format: EPUB
Kopierschutz: 0 - No protection

Das umfassende Handbuch

E-Book, Deutsch, 896 Seiten

Reihe: Rheinwerk Computing

ISBN: 978-3-8362-8767-8
Verlag: Rheinwerk
Format: EPUB
Kopierschutz: 0 - No protection



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


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.
Springer Node.js jetzt bestellen!

Autoren/Hrsg.


Weitere Infos & Material


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ützung ... 775  25.3 ... Skalierung ... 777  25.4 ... »pm2« -- Prozessmanagement ... 786  25.5 ... Docker ... 787  25.6 ... Zusammenfassung ... 789

26.  Performance ... 791  26.1 ... YAGNI -- You Ain't Gonna Need It ... 791  26.2 ... CPU ... 792  26.3 ... Arbeitsspeicher ... 800  26.4 ... Netzwerk ... 806  26.5 ... Zusammenfassung ... 810

27.  Microservices mit Node.js ... 811  27.1 ... Grundlagen ... 811  27.2 ... Architektur ... 814  27.3 ... Die Infrastruktur ... 816  27.4 ... Ein asynchroner Microservice mit RabbitMQ ... 818  27.5 ... API-Gateway ... 827  27.6 ... Synchroner Microservice mit Express ... 840  27.7 ... Zusammenfassung ... 849

28.  Deno ... 851  28.1 ... Die zehn Dinge, die Ryan Dahl bereut ... 851  28.2 ... Installation von Deno ... 854  28.3 ... Ausführung ... 855  28.4 ... Arbeiten mit Dateien ... 857  28.5 ... Ein Webserver mit Deno ... 864  28.6 ... Das Modulsystem ... 866  28.7 ... Zusammenfassung ... 871  Index ... 873


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.



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.