Buch, Deutsch, 560 Seiten, Format (B × H): 168 mm x 240 mm
Das umfassende Handbuch. Serverseitige Webapplikationen mit JavaScript entwickeln
Buch, Deutsch, 560 Seiten, Format (B × H): 168 mm x 240 mm
ISBN: 978-3-8362-4003-1
Verlag: Rheinwerk Verlag
Das Buch bietet Ihnen einen guten Einstieg in das Universum von Node.js ab Version 4.2. Node.js ist die am weitesten verbreitete und auch von zahlreichen großen Unternehmen eingesetzte serverseitige JavaScript-Plattform. An einfachen und leicht verständlichen Beispielen werden die Grundlagen erklärt. Professionelle Anwender finden zahlreiche Tipps und Lösungen von alltäglichen Problemen in der Webentwicklung, einen Einblick in neue Vorgehensweisen bei der Entwicklung durch den Einsatz von ECMScript 6 (z.B. Klassen), den Aufbau und die Struktur von Applikationen, Bibliotheken (z.B. Express, Handlebars) und Tools (nvm, nodemon) sowie Hinweise zum Deployment und der Skalierung von Applikationen.
Aus dem Inhalt:
- Grundlagen
- Googles V8-Engine
- Installation von Node.js
- Anpassung und Erweiterung
- Node.js-Module verwenden
- Node Package Manager (NPM)
- Kommunikationsmöglichkeiten
- Asynchrone Programmierung
- Anbindung von Datenbanken
- Qualitätssicherung
- Skalierbarkeit und Deployment
- Server und Client schützen
Autoren/Hrsg.
Fachgebiete
Weitere Infos & Material
Geleitwort des Fachgutachters ... 19 Vorwort ... 21 1. Grundlagen ... 25 1.1 ... Die Geschichte von Node.js ... 26 1.2 ... Vorteile von Node.js ... 30 1.3 ... Einsatzgebiete von Node.js ... 31 1.4 ... Das Herzstück -- die V8-Engine ... 32 1.5 ... Bibliotheken um die Engine ... 39 1.6 ... Zusammenfassung ... 45 2. Installation ... 47 2.1 ... Installation von Paketen ... 48 2.2 ... Kompilieren und Installieren ... 63 2.3 ... Zusammenfassung ... 65 3. Ein erstes Beispiel ... 67 3.1 ... Der interaktive Modus ... 67 3.2 ... Die erste Applikation ... 72 3.3 ... Zusammenfassung ... 81 4. Node-Module ... 83 4.1 ... Modularer Ansatz ... 83 4.2 ... Stabilität ... 86 4.3 ... Basis-Module ... 90 4.4 ... Eigene Module erstellen und einbinden ... 98 4.5 ... Zusammenfassung ... 108 5. NPM ... 109 5.1 ... Pakete suchen ... 109 5.2 ... Werkzeuge für NPM ... 126 5.3 ... Zusammenfassung ... 128 6. ECMAScript 6 ... 129 6.1 ... Ein kurzer Rückblick ... 129 6.2 ... Node.js und ECMAScript 6 ... 131 6.3 ... String- und Array-Erweiterungen ... 132 6.4 ... Scoping ... 133 6.5 ... Klassen ... 137 6.6 ... Template Strings ... 140 6.7 ... Collections ... 142 6.8 ... Arrow Functions ... 144 6.9 ... Generators ... 145 6.10 ... Promises ... 146 6.11 ... Symbols ... 148 6.12 ... Typed Arrays ... 150 6.13 ... Spread-Operator ... 150 6.14 ... Rest Parameters ... 151 6.15 ... Destructuring ... 151 6.16 ... Binary und Octal Literals ... 152 6.17 ... Erweiterung der Object Literals ... 152 6.18 ... »Object.assign« ... 153 6.19 ... »new.target« ... 153 6.20 ... Zusammenfassung ... 153 7. Node auf der Kommandozeile ... 155 7.1 ... Grundlagen ... 155 7.2 ... Der Aufbau einer Kommandozeilenapplikation ... 158 7.3 ... Zugriff auf Ein- und Ausgabe ... 161 7.4 ... Werkzeuge ... 169 7.5 ... Zusammenfassung ... 172 8. HTTP ... 173 8.1 ... Der Webserver ... 173 8.2 ... HTTP-Client mit Node.js ... 187 8.3 ... Umgang mit URLs ... 196 8.4 ... Sichere Kommunikation mit HTTPS ... 198 8.5 ... Zusammenfassung ... 199 9. Express.js ... 201 9.1 ... Aufbau ... 201 9.2 ... Installation ... 203 9.3 ... Grundlagen ... 204 9.4 ... Setup ... 206 9.5 ... Routing ... 215 9.6 ... Middleware ... 220 9.7 ... Zusammenfassung ... 22710. Template-Engines ... 229 10.1 ... Eine eigene Template-Engine ... 230 10.2 ... Template-Engines in der Praxis -- Jade ... 231 10.3 ... Handlebars ... 251 10.4 ... Zusammenfassung ... 25811. REST Server ... 259 11.1 ... »GET« -- lesender Zugriff ... 261 11.2 ... »POST« -- Anlegen neuer Ressourcen ... 265 11.3 ... »PUT« -- Aktualisierung bestehender Daten ... 267 11.4 ... »DELETE« -- Löschen vorhandener Daten ... 269 11.5 ... »Accept«-Header ... 271 11.6 ... Zusammenfassung ... 27312. Single-Page-Webapplikationen mit Express.js und Angular.js ... 275 12.1 ... Die Aufgabenstellung ... 275 12.2 ... Setup ... 276 12.3 ... Die Applikation ... 281 12.4 ... Zusammenfassung ... 29913. Echtzeit-Webapplikationen ... 301 13.1 ... Die Beispielapplikation ... 302 13.2 ... Setup ... 303 13.3 ... Websockets ... 308 13.4 ... Socket.IO ... 320 13.5 ... Zusammenfassung ... 32514. Asynchrone Programmierung ... 327 14.1 ... Grundlagen asynchroner Programmierung ... 327 14.2 ... Externe Kommandos asynchron ausführen ... 332 14.3 ... »fork« ... 337 14.4 ... Das cluster-Modul ... 341 14.5 ... Promises in Node.js ... 349 14.6 ... Zusammenfassung ... 35315. Streams ... 355 15.1 ... Einleitung ... 355 15.2 ... Readable Streams ... 358 15.3 ... Writable Streams ... 369 15.4 ... Duplex Streams ... 376 15.5 ... Transform Streams ... 378 15.6 ... Gulp ... 380 15.7 ... Zusammenfassung ... 38216. Arbeiten mit Dateien ... 383 16.1 ... Synchrone und asynchrone Funktionen ... 383 16.2 ... Existenz von Dateien ... 384 16.3 ... Dateien lesen ... 385 16.4 ... Fehlerbehandlung ... 390 16.5 ... In Dateien schreiben ... 391 16.6 ... Verzeichnisoperationen ... 394 16.7 ... Weiterführende Operationen ... 398 16.8 ... Zusammenfassung ... 40217. Socket-Server ... 405 17.1 ... UNIX-Sockets ... 406 17.2 ... Windows Pipes ... 413 17.3 ... TCP-Sockets ... 414 17.4 ... UDP-Sockets ... 421 17.5 ... Zusammenfassung ... 42618. Anbindung von Datenbanken ... 427 18.1 ... Node.js und relationale Datenbanken ... 428 18.2 ... Node.js und nicht relationale Datenbanken ... 439 18.3 ... Datenbanken und Promises ... 449 18.4 ... Datenbanken und Streams ... 450 18.5 ... Zusammenfassung ... 45119. Qualitätssicherung ... 453 19.1 ... Unittesting ... 453 19.2 ... Assertion Testing ... 456 19.3 ... Jasmine ... 459 19.4 ... nodeunit ... 465 19.5 ... Praktisches Beispiel von Unittests mit nodeunit ... 470 19.6 ... Statische Codeanalyse ... 474 19.7 ... Node.js Debugger ... 482 19.8 ... Node Inspector ... 487 19.9 ... Debugging in der Entwicklungsumgebung ... 489 19.10 ... Zusammenfassung ... 48920. Sicherheitsaspekte ... 491 20.1 ... Filter Input und Escape Output ... 492 20.2 ... Absicherung des Servers ... 494 20.3 ... NPM-Sicherheit ... 511 20.4 ... Schutz des Clients ... 514 20.5 ... Zusammenfassung ... 51821. Skalierbarkeit und Deployment ... 519 21.1 ... Deployment ... 519 21.2 ... Toolunterstützung ... 528 21.3 ... Skalierung ... 534 21.4 ... pm2 -- Prozessmanagement ... 543 21.5 ... Zusammenfassung ... 544 Index ... 545