Node.js

Inhaltsverzeichnis



  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

Node.js

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

Buch (Gebundene Ausgabe)

49,90 €

inkl. gesetzl. MwSt.

Node.js

Ebenfalls verfügbar als:

Gebundenes Buch

Gebundenes Buch

ab 49,90 €
eBook

eBook

ab 49,90 €

Artikel liefern lassen

Beschreibung

Details

Einband

Gebundene Ausgabe

Erscheinungsdatum

26.11.2021

Verlag

Rheinwerk

Seitenzahl

896

Maße (L/B/H)

24,7/18,2/5,5 cm

Beschreibung

Rezension

»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.« regetskcob.blog 202305

Details

Einband

Gebundene Ausgabe

Erscheinungsdatum

26.11.2021

Verlag

Rheinwerk

Seitenzahl

896

Maße (L/B/H)

24,7/18,2/5,5 cm

Gewicht

1768 g

Auflage

4. erweiterte Auflage

Sprache

Deutsch

ISBN

978-3-8362-8765-4

Weitere Bände von Rheinwerk Computing

Unsere Kundinnen und Kunden meinen

0.0

0 Bewertungen

Informationen zu Bewertungen

Zur Abgabe einer Bewertung ist eine Anmeldung im Konto notwendig. Die Authentizität der Bewertungen wird von uns nicht überprüft. Wir behalten uns vor, Bewertungstexte, die unseren Richtlinien widersprechen, entsprechend zu kürzen oder zu löschen.

Verfassen Sie die erste Bewertung zu diesem Artikel

Helfen Sie anderen Kund*innen durch Ihre Meinung

Erste Bewertung verfassen

Unsere Kundinnen und Kunden meinen

0.0

0 Bewertungen filtern

Weitere Artikel finden Sie in

Die Leseprobe wird geladen.
  • Node.js


  •   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