Zum Hauptinhalt springen
Dekorationsartikel gehören nicht zum Leistungsumfang.
Node.js
Das umfassende Handbuch. Serverseitige Web-Applikationen mit JavaScript entwickeln. Aktuell zu Version 16
Buch von Sebastian Springer
Sprache: Deutsch

49,90 €*

inkl. MwSt.

Versandkostenfrei per Post / DHL

auf Lager, Lieferzeit 1-2 Werktage

Kategorien:
Beschreibung

Bühne frei für [...]! 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 [...] 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
  • [...] Module verwenden
  • Node Package Manager (z. B. NPM, Yarn)
  • Erfolgreich arbeiten mit [...]
  • Asynchrone Programmierung
  • Anbindung von Datenbanken
  • GraphQL nutzen
  • Performance, Testing, Qualitätssicherung
  • Skalierbarkeit und Deployment
  • Microservices mit [...]
  • Deno kennen lernen

Bühne frei für [...]! 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 [...] 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
  • [...] Module verwenden
  • Node Package Manager (z. B. NPM, Yarn)
  • Erfolgreich arbeiten mit [...]
  • Asynchrone Programmierung
  • Anbindung von Datenbanken
  • GraphQL nutzen
  • Performance, Testing, Qualitätssicherung
  • Skalierbarkeit und Deployment
  • Microservices mit [...]
  • Deno kennen lernen
Über den Autor
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 [...] und ist ein gefragter Speaker auf allen wichtigen JavaScript- und Webentwickler-Konferenzen.
Zusammenfassung
Debugging, Skalierung, Qualitätssicherung
Inhaltsverzeichnis
Materialien zum Buch ... 23
Geleitwort ... 25
Vorwort ... 27
1. Grundlagen ... 31

1.1 ... Die Geschichte von [...] ... 33

1.2 ... Die Organisation von [...] ... 38

1.3 ... Versionierung von [...] ... 39

1.4 ... Vorteile von [...] ... 41

1.5 ... Einsatzgebiete von [...] ... 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 [...]-Applikationen ... 96

3.4 ... Entwicklungswerkzeug 'nodemon' ... 107

3.5 ... Zusammenfassung ... 108

4. [...]-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 ... [...] 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 ... [...] und relationale Datenbanken ... 260

8.2 ... [...] 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 ... [...] ... 404

12.5 ... Zusammenfassung ... 410

13. Typsichere Applikationen in [...] ... 411

13.1 ... Typsysteme für [...] ... 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 [...]-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 ... [...]-Kindprozesse erzeugen mit 'fork' ... 527

16.4 ... Das 'cluster'-Modul ... 532

16.5 ... Worker-Threads ... 541

16.6 ... Promises in [...] ... 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 ......
Details
Erscheinungsjahr: 2021
Fachbereich: Datenkommunikation, Netze & Mailboxen
Genre: Informatik
Rubrik: Naturwissenschaften & Technik
Medium: Buch
Reihe: Rheinwerk Computing
Inhalt: 896 S.
ISBN-13: 9783836287654
ISBN-10: 383628765X
Sprache: Deutsch
Herstellernummer: 459/08765
Einband: Gebunden
Autor: Springer, Sebastian
Auflage: 4. Auflage
Hersteller: Rheinwerk Verlag GmbH
Maße: 247 x 182 x 55 mm
Von/Mit: Sebastian Springer
Erscheinungsdatum: 26.11.2021
Gewicht: 1,772 kg
Artikel-ID: 120490566
Über den Autor
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 [...] und ist ein gefragter Speaker auf allen wichtigen JavaScript- und Webentwickler-Konferenzen.
Zusammenfassung
Debugging, Skalierung, Qualitätssicherung
Inhaltsverzeichnis
Materialien zum Buch ... 23
Geleitwort ... 25
Vorwort ... 27
1. Grundlagen ... 31

1.1 ... Die Geschichte von [...] ... 33

1.2 ... Die Organisation von [...] ... 38

1.3 ... Versionierung von [...] ... 39

1.4 ... Vorteile von [...] ... 41

1.5 ... Einsatzgebiete von [...] ... 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 [...]-Applikationen ... 96

3.4 ... Entwicklungswerkzeug 'nodemon' ... 107

3.5 ... Zusammenfassung ... 108

4. [...]-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 ... [...] 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 ... [...] und relationale Datenbanken ... 260

8.2 ... [...] 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 ... [...] ... 404

12.5 ... Zusammenfassung ... 410

13. Typsichere Applikationen in [...] ... 411

13.1 ... Typsysteme für [...] ... 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 [...]-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 ... [...]-Kindprozesse erzeugen mit 'fork' ... 527

16.4 ... Das 'cluster'-Modul ... 532

16.5 ... Worker-Threads ... 541

16.6 ... Promises in [...] ... 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 ......
Details
Erscheinungsjahr: 2021
Fachbereich: Datenkommunikation, Netze & Mailboxen
Genre: Informatik
Rubrik: Naturwissenschaften & Technik
Medium: Buch
Reihe: Rheinwerk Computing
Inhalt: 896 S.
ISBN-13: 9783836287654
ISBN-10: 383628765X
Sprache: Deutsch
Herstellernummer: 459/08765
Einband: Gebunden
Autor: Springer, Sebastian
Auflage: 4. Auflage
Hersteller: Rheinwerk Verlag GmbH
Maße: 247 x 182 x 55 mm
Von/Mit: Sebastian Springer
Erscheinungsdatum: 26.11.2021
Gewicht: 1,772 kg
Artikel-ID: 120490566
Warnhinweis