49,90 €*
Versandkostenfrei per Post / DHL
Aktuell nicht verfügbar
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
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 ......
Erscheinungsjahr: | 2021 |
---|---|
Fachbereich: | Datenkommunikation, Netze & Mailboxen |
Genre: | Informatik, Mathematik, Medizin, Naturwissenschaften, Technik |
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
Rheinwerk Verlag GmbH |
Verantwortliche Person für die EU: | Rheinwerk Verlag GmbH, Rheinwerkallee 4, D-53227 Bonn, service@rheinwerk-verlag.de |
Maße: | 247 x 182 x 55 mm |
Von/Mit: | Sebastian Springer |
Erscheinungsdatum: | 26.11.2021 |
Gewicht: | 1,772 kg |
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 ......
Erscheinungsjahr: | 2021 |
---|---|
Fachbereich: | Datenkommunikation, Netze & Mailboxen |
Genre: | Informatik, Mathematik, Medizin, Naturwissenschaften, Technik |
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
Rheinwerk Verlag GmbH |
Verantwortliche Person für die EU: | Rheinwerk Verlag GmbH, Rheinwerkallee 4, D-53227 Bonn, service@rheinwerk-verlag.de |
Maße: | 247 x 182 x 55 mm |
Von/Mit: | Sebastian Springer |
Erscheinungsdatum: | 26.11.2021 |
Gewicht: | 1,772 kg |