Node.js
Das umfassende Handbuch. Serverseitige Web-Applikationen mit JavaScript entwickeln
Das Buch bietet Ihnen einen umfassenden Einstieg in die serverseitige JavaScript-Plattform Node.js ab Version 8.0 LTS. An einfachen und leicht verständlichen Beispielen erlernen Sie die Grundlagen von Node.js, professionelle Anwender profitieren von...
Leider schon ausverkauft
Buch
- Lastschrift, Kreditkarte, Paypal, Rechnung
- Kostenlose Rücksendung
Produktdetails
Produktinformationen zu „Node.js “
Klappentext zu „Node.js “
Das Buch bietet Ihnen einen umfassenden Einstieg in die serverseitige JavaScript-Plattform Node.js ab Version 8.0 LTS. An einfachen und leicht verständlichen Beispielen erlernen Sie die Grundlagen von Node.js, professionelle Anwender profitieren von zahlreichen Tipps und Lösungen für den Entwickler-Alltag. Das Buch wurde für die dritte Auflage grundlegend aktualisiert und enthält nun eigene Kapitel zu RxJS, Microservices, Testing, Authentifizierung und Session-Handling, auch erfahren Sie mehr über HTTPS2, Docker, REST-Services mit Express u. v. m.
Aus dem Inhalt:
GrundlagenGoogles V8-EngineInstallation von Node.jsAnpassung und ErweiterungNode.js-Module verwendenNode Package Manager (NPM)KommunikationsmöglichkeitenAsynchrone ProgrammierungAnbindung von DatenbankenQualitätssicherungSkalierbarkeit und DeploymentServer und Client schützenDie Fachpresse zur Vorauflage:
eStrategy: »Ob alltägliche Probleme in der Webentwicklung oder Aufbau von Applikationen - die Lektüre wartet mit Dutzenden Tipps und Lösungen für professionelle Anwender auf.«
Inhaltsverzeichnis zu „Node.js “
Materialien zum Buch ... 21
Geleitwort ... 23
Vorwort ... 25
1. Grundlagen ... 29
1.1 ... Die Geschichte von Node.js ... 31
1.2 ... Die Organisation von Node.js ... 35
1.3 ... Versionierung von Node.js ... 37
1.4 ... Vorteile von Node.js ... 38
1.5 ... Einsatzgebiete von Node.js ... 39
1.6 ... Das Herzstück -- die V8-Engine ... 40
1.7 ... Bibliotheken um die Engine ... 47
1.8 ... Zusammenfassung ... 53
2. Installation ... 55
2.1 ... Installation von Paketen ... 56
2.2 ... Kompilieren und installieren ... 70
2.3 ... Node Version Manager ... 73
2.4 ... Zusammenfassung ... 74
3. Ein erstes Beispiel ... 75
3.1 ... Der interaktive Modus ... 75
3.2 ... Die erste Applikation ... 81
3.3 ... Debuggen von Node.js-Applikationen ... 90
3.4 ... Entwicklungswerkzeug »nodemon« ... 101
3.5 ... Zusammenfassung ... 102
4. Node.js-Module ... 103
4.1 ... Modularer Aufbau ... 103
4.2 ... Kernmodule ... 105
4.3 ... JavaScript-Modulsysteme ... 117
4.4 ... Eigene Module erzeugen und verwenden ... 121
4.5 ... Zusammenfassung ... 133
5. HTTP ... 135
5.1 ... Der Webserver ... 135
5.2 ... Node.js als HTTP-Client ... 157
5.3 ... Sichere Kommunikation mit HTTPS ... 161
5.4 ... HTTP/2 ... 163
5.5 ... Zusammenfassung ... 170
6. Express ... 171
6.1 ... Aufbau ... 171
6.2 ... Installation ... 172
6.3 ... Grundlagen ... 174
6.4 ... Setup ... 176
6.5 ... Moviedatenbank ... 179
6.6 ... Middleware ... 187
6.7 ... Erweitertes Routing -- Löschen von Datensätzen ... 192
6.8 ... Anlegen und Bearbeiten von Datensätzen -- Body-Parser ... 195
6.9 ... Express 5 ... 202
6.10 ...
... mehr
HTTPS und HTTP/2 ... 203
6.11 ... Zusammenfassung ... 205
7. Template-Engines ... 207
7.1 ... Eine eigene Template-Engine ... 208
7.2 ... Template-Engines in der Praxis -- Pug ... 210
7.3 ... Handlebars ... 225
7.4 ... Zusammenfassung und Ausblick ... 234
8. Anbindung von Datenbanken ... 237
8.1 ... Node.js und relationale Datenbanken ... 238
8.2 ... Node.js und nicht relationale Datenbanken ... 261
8.3 ... Zusammenfassung ... 276
9. Authentifizierung und Sessionhandling ... 277
9.1 ... Passport ... 277
9.2 ... Setup und Konfiguration ... 278
9.3 ... Anmeldung an der Applikation ... 281
9.4 ... Zugriff auf Ressourcen ... 289
9.5 ... Zusammenfassung ... 300
10. REST-Server ... 301
10.1 ... REST -- eine kurze Einführung und wie es in Webapplikationen verwendet wird ... 301
10.2 ... Zugriff auf die Applikation ... 302
10.3 ... Anpassungen an der Applikationsstruktur ... 303
10.4 ... Lesende Anfragen ... 304
10.5 ... Schreibende Anfragen ... 315
10.6 ... Authentifizierung mit JWT ... 323
10.7 ... Swagger ... 328
10.8 ... GraphQL ... 333
10.9 ... Zusammenfassung ... 338
11. Echtzeit-Webapplikationen ... 339
11.1 ... Die Beispielapplikation ... 340
11.2 ... Setup ... 341
11.3 ... Websockets ... 347
11.4 ... Socket.IO ... 362
11.5 ... Zusammenfassung ... 367
12. Node auf der Kommandozeile ... 369
12.1 ... Grundlagen ... 369
12.2 ... Der Aufbau einer Kommandozeilenapplikation ... 372
12.3 ... Zugriff auf Ein- und Ausgabe ... 377
12.4 ... Werkzeuge ... 387
12.5 ... Signale ... 394
12.6 ... Exit Codes ... 396
12.7 ... Zusammenfassung ... 398
13. Asynchrone Programmierung ... 399
13.1 ... Grundlagen asynchroner Programmierung ... 399
13.2 ... Externe Kommandos asynchron ausführen ... 404
13.3 ... Node.js-Kindprozesse erzeugen mit »fork« ... 410
13.4 ... Das »cluster«-Modul ... 414
13.5 ... Promises in Node.js ... 423
13.6 ... Async Functions ... 429
13.7 ... Zusammenfassung ... 430
14. RxJS ... 433
14.1 ... Grundlagen ... 434
14.2 ... Operatoren ... 440
14.3 ... Subjects ... 456
14.4 ... Scheduler ... 458
14.5 ... Zusammenfassung ... 459
15. Streams ... 461
15.1 ... Einleitung ... 461
15.2 ... Readable Streams ... 464
15.3 ... Writable Streams ... 476
15.4 ... Duplex-Streams ... 484
15.5 ... Transform-Streams ... 486
15.6 ... Gulp ... 488
15.7 ... Zusammenfassung ... 490
16. Arbeiten mit Dateien ... 491
16.1 ... Synchrone und asynchrone Funktionen ... 491
16.2 ... Existenz von Dateien ... 493
16.3 ... Dateien lesen ... 494
16.4 ... Fehlerbehandlung ... 499
16.5 ... In Dateien schreiben ... 500
16.6 ... Verzeichnisoperationen ... 504
16.7 ... Weiterführende Operationen ... 507
16.8 ... Zusammenfassung ... 512
17. Socket-Server ... 513
17.1 ... Unix-Sockets ... 514
17.2 ... Windows Pipes ... 521
17.3 ... TCP-Sockets ... 522
17.4 ... UDP-Sockets ... 530
17.5 ... Zusammenfassung ... 534
18. Package Manager ... 535
18.1 ... Die häufigsten Operationen ... 536
18.2 ... Weiterführende Operationen ... 547
18.3 ... Werkzeuge für NPM ... 554
18.4 ... Yarn ... 557
18.5 ... Zusammenfassung ... 558
19. Qualitätssicherung ... 561
19.1 ... Styleguides ... 562
19.2 ... Linter ... 563
19.3 ... Prettier ... 568
19.4 ... PMD CPD ... 569
19.5 ... Plato ... 572
19.6 ... Zusammenfassung ... 574
20. Testing ... 575
20.1 ... Unittesting ... 575
20.2 ... Assertion Testing ... 578
20.3 ... Jasmine ... 584
20.4 ... »nodeunit« ... 592
20.5 ... Praktisches Beispiel von Unittests mit »nodeunit« ... 597
20.6 ... Zusammenfassung ... 602
21. Sicherheitsaspekte ... 605
21.1 ... »filter input« und »escape output« ... 606
21.2 ... Absicherung des Servers ... 609
21.3 ... NPM-Sicherheit ... 627
21.4 ... Schutz des Clients ... 631
21.5 ... Zusammenfassung ... 635
22. Skalierbarkeit und Deployment ... 637
22.1 ... Deployment ... 637
22.2 ... Toolunterstützung ... 646
22.3 ... Skalierung ... 654
22.4 ... »pm2« -- Prozessmanagement ... 664
22.5 ... Docker ... 665
22.6 ... Zusammenfassung ... 667
23. Microservices mit Node.js ... 669
23.1 ... Grundlagen ... 669
23.2 ... Architektur ... 672
23.3 ... Die Infrastruktur ... 674
23.4 ... Seneca ... 676
23.5 ... API-Gateway ... 685
23.6 ... Express ... 693
23.7 ... Zusammenfassung ... 703
24. Typsichere Applikationen in Node.js ... 705
24.1 ... Typsysteme für Node.js ... 706
24.2 ... Werkzeuge und Konfiguration ... 710
24.3 ... Grundlagen ... 714
24.4 ... Klassen ... 720
24.5 ... Interfaces ... 723
24.6 ... Generics ... 724
24.7 ... TypeScript im Einsatz in einer Node.js-Applikation ... 726
24.8 ... Zusammenfassung ... 728
Index ... 729
6.11 ... Zusammenfassung ... 205
7. Template-Engines ... 207
7.1 ... Eine eigene Template-Engine ... 208
7.2 ... Template-Engines in der Praxis -- Pug ... 210
7.3 ... Handlebars ... 225
7.4 ... Zusammenfassung und Ausblick ... 234
8. Anbindung von Datenbanken ... 237
8.1 ... Node.js und relationale Datenbanken ... 238
8.2 ... Node.js und nicht relationale Datenbanken ... 261
8.3 ... Zusammenfassung ... 276
9. Authentifizierung und Sessionhandling ... 277
9.1 ... Passport ... 277
9.2 ... Setup und Konfiguration ... 278
9.3 ... Anmeldung an der Applikation ... 281
9.4 ... Zugriff auf Ressourcen ... 289
9.5 ... Zusammenfassung ... 300
10. REST-Server ... 301
10.1 ... REST -- eine kurze Einführung und wie es in Webapplikationen verwendet wird ... 301
10.2 ... Zugriff auf die Applikation ... 302
10.3 ... Anpassungen an der Applikationsstruktur ... 303
10.4 ... Lesende Anfragen ... 304
10.5 ... Schreibende Anfragen ... 315
10.6 ... Authentifizierung mit JWT ... 323
10.7 ... Swagger ... 328
10.8 ... GraphQL ... 333
10.9 ... Zusammenfassung ... 338
11. Echtzeit-Webapplikationen ... 339
11.1 ... Die Beispielapplikation ... 340
11.2 ... Setup ... 341
11.3 ... Websockets ... 347
11.4 ... Socket.IO ... 362
11.5 ... Zusammenfassung ... 367
12. Node auf der Kommandozeile ... 369
12.1 ... Grundlagen ... 369
12.2 ... Der Aufbau einer Kommandozeilenapplikation ... 372
12.3 ... Zugriff auf Ein- und Ausgabe ... 377
12.4 ... Werkzeuge ... 387
12.5 ... Signale ... 394
12.6 ... Exit Codes ... 396
12.7 ... Zusammenfassung ... 398
13. Asynchrone Programmierung ... 399
13.1 ... Grundlagen asynchroner Programmierung ... 399
13.2 ... Externe Kommandos asynchron ausführen ... 404
13.3 ... Node.js-Kindprozesse erzeugen mit »fork« ... 410
13.4 ... Das »cluster«-Modul ... 414
13.5 ... Promises in Node.js ... 423
13.6 ... Async Functions ... 429
13.7 ... Zusammenfassung ... 430
14. RxJS ... 433
14.1 ... Grundlagen ... 434
14.2 ... Operatoren ... 440
14.3 ... Subjects ... 456
14.4 ... Scheduler ... 458
14.5 ... Zusammenfassung ... 459
15. Streams ... 461
15.1 ... Einleitung ... 461
15.2 ... Readable Streams ... 464
15.3 ... Writable Streams ... 476
15.4 ... Duplex-Streams ... 484
15.5 ... Transform-Streams ... 486
15.6 ... Gulp ... 488
15.7 ... Zusammenfassung ... 490
16. Arbeiten mit Dateien ... 491
16.1 ... Synchrone und asynchrone Funktionen ... 491
16.2 ... Existenz von Dateien ... 493
16.3 ... Dateien lesen ... 494
16.4 ... Fehlerbehandlung ... 499
16.5 ... In Dateien schreiben ... 500
16.6 ... Verzeichnisoperationen ... 504
16.7 ... Weiterführende Operationen ... 507
16.8 ... Zusammenfassung ... 512
17. Socket-Server ... 513
17.1 ... Unix-Sockets ... 514
17.2 ... Windows Pipes ... 521
17.3 ... TCP-Sockets ... 522
17.4 ... UDP-Sockets ... 530
17.5 ... Zusammenfassung ... 534
18. Package Manager ... 535
18.1 ... Die häufigsten Operationen ... 536
18.2 ... Weiterführende Operationen ... 547
18.3 ... Werkzeuge für NPM ... 554
18.4 ... Yarn ... 557
18.5 ... Zusammenfassung ... 558
19. Qualitätssicherung ... 561
19.1 ... Styleguides ... 562
19.2 ... Linter ... 563
19.3 ... Prettier ... 568
19.4 ... PMD CPD ... 569
19.5 ... Plato ... 572
19.6 ... Zusammenfassung ... 574
20. Testing ... 575
20.1 ... Unittesting ... 575
20.2 ... Assertion Testing ... 578
20.3 ... Jasmine ... 584
20.4 ... »nodeunit« ... 592
20.5 ... Praktisches Beispiel von Unittests mit »nodeunit« ... 597
20.6 ... Zusammenfassung ... 602
21. Sicherheitsaspekte ... 605
21.1 ... »filter input« und »escape output« ... 606
21.2 ... Absicherung des Servers ... 609
21.3 ... NPM-Sicherheit ... 627
21.4 ... Schutz des Clients ... 631
21.5 ... Zusammenfassung ... 635
22. Skalierbarkeit und Deployment ... 637
22.1 ... Deployment ... 637
22.2 ... Toolunterstützung ... 646
22.3 ... Skalierung ... 654
22.4 ... »pm2« -- Prozessmanagement ... 664
22.5 ... Docker ... 665
22.6 ... Zusammenfassung ... 667
23. Microservices mit Node.js ... 669
23.1 ... Grundlagen ... 669
23.2 ... Architektur ... 672
23.3 ... Die Infrastruktur ... 674
23.4 ... Seneca ... 676
23.5 ... API-Gateway ... 685
23.6 ... Express ... 693
23.7 ... Zusammenfassung ... 703
24. Typsichere Applikationen in Node.js ... 705
24.1 ... Typsysteme für Node.js ... 706
24.2 ... Werkzeuge und Konfiguration ... 710
24.3 ... Grundlagen ... 714
24.4 ... Klassen ... 720
24.5 ... Interfaces ... 723
24.6 ... Generics ... 724
24.7 ... TypeScript im Einsatz in einer Node.js-Applikation ... 726
24.8 ... Zusammenfassung ... 728
Index ... 729
... weniger
Autoren-Porträt von Sebastian Springer
Springer, SebastianSebastian Springer arbeitet als Teamleiter bei der Mayflower GmbH in München. Sein Fokus liegt auf der Entwicklung von dynamischen Webapplikationen mit JavaScript und PHP.
Bibliographische Angaben
- Autor: Sebastian Springer
- 2018, 3., erw. Aufl., 747 Seiten, Maße: 17,4 x 24,4 cm, Gebunden, Deutsch
- Verlag: Rheinwerk Verlag
- ISBN-10: 383626255X
- ISBN-13: 9783836262552
- Erscheinungsdatum: 24.08.2018
Rezension zu „Node.js “
Die Fachpresse zur Vorauflage:eStrategy: "Ob alltägliche Probleme in der Webentwicklung oder Aufbau von Applikationen - die Lektüre wartet mit Dutzenden Tipps und Lösungen für professionelle Anwender auf."
Kommentar zu "Node.js"
Schreiben Sie einen Kommentar zu "Node.js".
Kommentar verfassen