Node.js
Galileo Press (Verlag)
978-3-8362-2119-1 (ISBN)
- Titel ist leider vergriffen;
keine Neuauflage - Artikel merken
- Professionelle, echtzeitfähige Anwendungen entwickeln
- Installation, Grundlagen, Best Practices
- Debugging, Skalierung, Qualitätssicherung
Node.js ist eine der derzeit schnellsten JavaScript-Implementierungen für Webserver. Es erreicht eine für Skriptsprachen sonst unerreichbare Performance-Region und ermöglicht den Einsatz in zahlreichen Bereichen, die bis dato C/C++ vorbehalten waren.
Durch seine Architektur eignet sich Node.js vor allem im Verbund mit anderen Technologien zur Umsetzung komplexer Webapplikationen auf den unterschiedlichsten Plattformen.
Das Buch bietet Ihnen einen guten Einstieg in das Universum von Node.js. Mit einfachen und leicht verständlichen Beispielen werden die Grundlagen erklärt, die die Basis für weiterführende Themen bilden. Durch diesen Aufbau eignet sich das Buch sowohl zum Erlernen von Node.js als auch als Nachschlagewerk im täglichen Gebrauch.
Themen sind insbesondere:
- Vorteile und Einsatzgebiete von Node.js
- Installation von Node.js
- Das Modulsystem der Node.js-Plattform
- Node Package Manager
- Das http-Modul von Node.js
- Anbindung von Datenbanken
- Qualitätssicherung
- Skalierbarkeit und Deployment
- Sicherheitsaspekte
- HTTP-Server
- Socket-Server
- Multi-Page-Webapplikationen
- Single-Page-Webapplikationen
- Echtzeit-Webapplikationen
Sebastian Springer arbeitet als Teamleiter bei der Mayflower GmbH in München. Sein Fokus liegt auf der Entwicklung von dynamischen Webapplikationen mit JavaScript und PHP.
... Geleitwort des Fachgutachters ... 13
... Vorwort ... 15
... Aufbau des Buches ... 16
... Danksagung ... 18
1 ... Grundlagen ... 19
1.1 ... Die Geschichte von Node.js ... 19
1.2 ... Die Vorteile von Node.js ... 22
1.3 ... Einsatzgebiete von Node.js ... 23
1.4 ... Das Herzstück – die V8-Engine ... 24
1.4.1 ... Das Speichermodell ... 26
1.4.2 ... Zugriff auf Eigenschaften ... 26
1.4.3 ... Maschinencodegenerierung ... 28
1.4.4 ... Garbage Collection ... 30
1.5 ... Bibliotheken um die Engine ... 31
1.5.1 ... Eventloop ... 32
1.5.2 ... Eingabe und Ausgabe ... 33
1.5.3 ... libuv ... 34
1.5.4 ... DNS ... 35
1.5.5 ... Crypto ... 36
1.5.6 ... Zlib ... 36
1.5.7 ... HTTP-Parser ... 36
1.6 ... Zusammenfassung ... 37
2 ... Installation ... 39
2.1 ... Installation von Paketen ... 40
2.1.1 ... Linux ... 41
2.1.2 ... Windows ... 44
2.1.3 ... Mac OS X ... 48
2.2 ... Kompilieren und installieren ... 54
2.3 ... Zusammenfassung ... 56
3 ... Ein erstes Beispiel ... 57
3.1 ... Der interaktive Modus ... 57
3.2 ... Die erste Applikation ... 61
3.3 ... Zusammenfassung ... 70
4 ... Anpassung und Erweiterung ... 71
4.1 ... Node.js-Module ... 71
4.1.1 ... Modularer Ansatz ... 71
4.1.2 ... Stabilitätsindex ... 73
4.1.3 ... Verfügbare Module ... 75
4.2 ... Basismodule ... 94
4.2.1 ... Globale Objekte ... 94
4.2.2 ... Utility ... 96
4.2.3 ... Events ... 100
4.2.4 ... OS ... 101
4.2.5 ... Process ... 103
4.2.6 ... Buffer ... 107
4.2.7 ... Path ... 108
4.3 ... Eigene Klassen erstellen und einbinden ... 110
4.3.1 ... Eigene Module in Node.js ... 115
4.3.2 ... Eigene Node.js-Module ... 115
4.3.3 ... Das Modules-Modul ... 117
4.3.4 ... Der Modulloader ... 118
4.3.5 ... Die require-Funktionalität ... 121
4.3.6 ... Die Time-Tracker-Applikation ... 122
4.4 ... NPM ... 136
4.4.1 ... Pakete suchen ... 137
4.4.2 ... Pakete installieren ... 138
4.4.3 ... Installierte Pakete anzeigen ... 142
4.4.4 ... Pakete verwenden ... 142
4.4.5 ... Pakete aktualisieren ... 149
4.4.6 ... Pakete entfernen ... 151
4.4.7 ... Die wichtigsten Kommandos im Überblick ... 151
4.4.8 ... Der Aufbau eines Moduls ... 152
4.4.9 ... Eigene Pakete erstellen ... 155
4.5 ... Zusammenfassung ... 159
5 ... Arbeiten mit Dateien ... 161
5.1 ... Dateien lesen ... 163
5.2 ... Dateien schreiben ... 169
5.3 ... Verzeichnisoperationen ... 175
5.4 ... Weiterführende Operationen ... 180
5.4.1 ... watch ... 182
5.4.2 ... Zugriffsberechtigungen ... 183
5.5 ... Zusammenfassung ... 185
6 ... Kommunikation ... 187
6.1 ... Der Webserver ... 188
6.1.1 ... Das Server-Objekt ... 188
6.1.2 ... Server-Events ... 190
6.1.3 ... Das Request-Objekt ... 193
6.1.4 ... Das Response-Objekt ... 197
6.2 ... HTTP-Client mit Node.js ... 201
6.2.1 ... Der http.Agent ... 203
6.2.2 ... Die Anfrage-Optionen ... 203
6.2.3 ... Die Klasse ClientRequest ... 205
6.2.4 ... Die Antwort des Servers ... 208
6.3 ... Umgang mit URLs ... 210
6.4 ... Streams in Node.js ... 212
6.4.1 ... Readable Stream ... 213
6.4.2 ... Writable Stream ... 214
6.5 ... Sockets ... 216
6.5.1 ... TCP ... 216
6.5.2 ... UNIX Domain Sockets ... 219
6.6 ... Zusammenfassung ... 221
7 ... Asynchrone Programmierung ... 223
7.1 ... Grundlagen asynchroner Programmierung ... 223
7.1.1 ... Das child_process-Modul ... 225
7.2 ... Externe Kommandos asynchron ausführen ... 227
7.2.1 ... Die exec-Methode ... 227
7.2.2 ... Die spawn-Methode ... 230
7.3 ... Fork ... 232
7.4 ... Das cluster-Modul ... 237
7.4.1 ... Der Masterprozess ... 237
7.4.2 ... Die Workerprozesse ... 241
7.5 ... Die Grundlagen von Promises ... 244
7.6 ... Promises in CommonJS ... 247
7.7 ... Libraries ... 248
7.8 ... Q ... 248
7.8.1 ... Deferred ... 249
7.8.2 ... Node.js und Promises ... 250
7.9 ... PromisedIO ... 253
7.10 ... Zusammenfassung ... 255
8 ... Anbindung von Datenbanken ... 257
8.1 ... Node.js und relationale Datenbanken ... 258
8.1.1 ... MySQL ... 258
8.1.2 ... SQLite ... 264
8.2 ... Node.js und nicht-relationale Datenbanken ... 269
8.2.1 ... Redis ... 270
8.2.2 ... MongoDB ... 274
8.3 ... Zusammenfassung ... 277
9 ... Qualitätssicherung ... 279
9.1 ... Assertion Testing ... 279
9.2 ... jasmine-node ... 284
9.3 ... nodeunit ... 289
9.4 ... Praktisches Beispiel von Unittests mit nodeunit ... 294
9.5 ... Statische Codeanalyse ... 298
9.5.1 ... JSLint ... 298
9.5.2 ... PMD CPD ... 300
9.6 ... Node.js Debugger ... 303
9.6.1 ... Navigation im Debugger ... 304
9.6.2 ... Informationen im Debugger ... 305
9.6.3 ... Breakpoints ... 307
9.7 ... Debugging in der Entwicklungsumgebung ... 309
9.8 ... Zusammenfassung ... 309
10 ... Skalierbarkeit und Deployment ... 311
10.1 ... Deployment ... 312
10.1.1 ... Einfaches Deployment ... 312
10.1.2 ... Dateisynchronisierung mit rsync ... 314
10.1.3 ... Die Applikation als Dienst ... 315
10.1.4 ... node_modules beim Deployment ... 317
10.1.5 ... Applikationen mit dem Node Package Manager installieren ... 318
10.1.6 ... Pakete lokal installieren ... 319
10.1.7 ... Toolunterstützung mit Grunt ... 320
10.2 ... Skalierung ... 325
10.2.1 ... Kindprozesse ... 326
10.2.2 ... Loadbalancer ... 329
10.2.3 ... Node in der Cloud ... 332
10.3 ... Zusammenfassung ... 334
11 ... Sicherheitsaspekte ... 335
11.1 ... Filter Input und Escape Output ... 335
11.2 ... Absicherung des Servers ... 336
11.2.1 ... Benutzerberechtigungen ... 336
11.2.2 ... Single-Threaded-Ansatz ... 337
11.2.3 ... Denial of Service ... 340
11.2.4 ... SQL-Injections ... 341
11.2.5 ... Eval ... 343
11.2.6 ... Method Invocation ... 344
11.3 ... Schutz des Clients ... 346
11.3.1 ... Cross-Site-Scripting ... 346
11.4 ... Zusammenfassung ... 348
12 ... HTTP-Server ... 349
12.1 ... GET – lesender Zugriff ... 351
12.2 ... POST – Anlegen neuer Ressourcen ... 354
12.3 ... PUT – Aktualisierung bestehender Daten ... 357
12.4 ... DELETE – Löschen vorhandener Daten ... 359
12.5 ... Accept-Header ... 360
12.6 ... Zusammenfassung ... 363
13 ... Socket-Server ... 365
13.1 ... UNIX-Sockets ... 366
13.1.1 ... Zugriff auf den Socket ... 367
13.1.2 ... Bidirektionale Kommunikation ... 369
13.2 ... TCP-Sockets ... 371
13.2.1 ... Datenübertragung ... 373
13.2.2 ... Dateiübertragung ... 374
13.2.3 ... Flusssteuerung ... 376
13.2.4 ... Duplex ... 377
13.2.5 ... Pipe ... 378
13.3 ... UDP-Sockets ... 379
13.3.1 ... Grundlagen eines UDP-Servers ... 379
13.3.2 ... Beispiel zum UDP-Server ... 381
13.4 ... Zusammenfassung ... 383
14 ... Multi-Page Webapplikationen ... 385
14.1 ... Das Web Application-Framework Express ... 385
14.1.1 ... Installation ... 386
14.1.2 ... Setup und Initialisierung der Applikation ... 386
14.1.3 ... Routing ... 387
14.1.4 ... Middleware ... 392
14.2 ... Templates mit Jade ... 394
14.2.1 ... Installation ... 395
14.2.2 ... Ein einfaches Beispiel ... 396
14.2.3 ... Verwendung von Jade ... 398
14.2.4 ... Integration in express.js ... 402
14.3 ... Auslieferung von statischen Inhalten ... 404
14.4 ... Zusammenfassung ... 407
15 ... Single-Page Webapplikationen ... 409
15.1 ... Die Aufgabenstellung ... 409
15.2 ... Setup ... 410
15.2.1 ... Ordnerstruktur ... 410
15.2.2 ... Die Datenbank ... 411
15.2.3 ... Abhängigkeiten ... 411
15.2.4 ... Clientbibliotheken ... 412
15.3 ... Die Applikation ... 415
15.3.1 ... Login ... 415
15.3.2 ... Liste der vorhandenen Datensätze ... 420
15.3.3 ... Neue Datensätze anlegen ... 427
15.4 ... Zusammenfassung ... 431
16 ... Echtzeit-Webapplikationen ... 433
16.1 ... Die Beispielapplikation ... 434
16.2 ... Setup ... 434
16.3 ... Websockets ... 439
16.3.1 ... Die Serverseite ... 440
16.3.2 ... Die Clientseite ... 443
16.3.3 ... Userliste ... 445
16.3.4 ... Logout ... 449
16.4 ... Socket.IO ... 450
16.4.1 ... Installation und Einbindung ... 451
16.4.2 ... Socket.IO-API ... 452
16.5 ... Zusammenfassung ... 456
... Index ... 457
| Erscheint lt. Verlag | 29.8.2013 |
|---|---|
| Reihe/Serie | Galileo Computing | Galileo Computing |
| Verlagsort | Bonn |
| Sprache | deutsch |
| Maße | 168 x 240 mm |
| Gewicht | 1045 g |
| Einbandart | gebunden |
| Themenwelt | Informatik ► Web / Internet ► JavaScript |
| Informatik ► Web / Internet ► Web Design / Usability | |
| Schlagworte | JavaScript • Node.js • Node.js PHP • Node.js Praxis • Programmierung • Webapplikationen • Webentwicklung • Webserver • Websockets |
| ISBN-10 | 3-8362-2119-5 / 3836221195 |
| ISBN-13 | 978-3-8362-2119-1 / 9783836221191 |
| Zustand | Neuware |
| Informationen gemäß Produktsicherheitsverordnung (GPSR) | |
| Haben Sie eine Frage zum Produkt? |
aus dem Bereich