Node.js

Das umfassende Handbuch. Serverseitige Web-Applikationen mit JavaScript entwickeln. Aktuell zu Version 16
Sofort lieferbar | Lieferzeit: Sofort lieferbar I
Alle Preise inkl. MwSt. | Versandkostenfrei
ISBN-13:
9783836287654
Veröffentl:
2021
Erscheinungsdatum:
26.11.2021
Seiten:
896
Autor:
Sebastian Springer
Gewicht:
1772 g
Format:
247x182x55 mm
Serie:
Rheinwerk Computing
Sprache:
Deutsch
Beschreibung:

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.
Debugging, Skalierung, Qualitätssicherung

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

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

Kunden Rezensionen

Zu diesem Artikel ist noch keine Rezension vorhanden.
Helfen sie anderen Besuchern und verfassen Sie selbst eine Rezension.