Springer | Node.js | Buch | 978-3-8362-8765-4 | sack.de

Buch, Deutsch, 896 Seiten, Format (B × H): 182 mm x 247 mm, Gewicht: 1772 g

Reihe: Rheinwerk Computing

Springer

Node.js

Das umfassende Handbuch. Serverseitige Web-Applikationen mit JavaScript entwickeln. Aktuell zu Version 16
4. aktualisierte und erweiterte Auflage 2021
ISBN: 978-3-8362-8765-4
Verlag: Rheinwerk Verlag GmbH

Das umfassende Handbuch. Serverseitige Web-Applikationen mit JavaScript entwickeln. Aktuell zu Version 16

Buch, Deutsch, 896 Seiten, Format (B × H): 182 mm x 247 mm, Gewicht: 1772 g

Reihe: Rheinwerk Computing

ISBN: 978-3-8362-8765-4
Verlag: Rheinwerk Verlag GmbH


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

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.