O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Node.js & Co.

Book Description

  • Das neue Hype-Thema in der Webentwicklung+ Das Buch zeigt auch die Techniken, die man um node.js herum benötigt.

Table of Contents

  1. Cover
  2. Titel
  3. Impressum
  4. Hingabe
  5. Vorwort
    1. An wen richtet sich dieses Buch?
    2. Wie ist das Buch strukturiert?
    3. Das Beispielprojekt
    4. Aktualität
    5. Danksagungen
    6. Kontakt
  6. Inhaltsverzeichnis
  7. Teil 1 Node.js ...
    1. 1 Was ist Node.js?
      1. 1.1 Die Zeitalter des Webs
        1. 1.1.1 1990 bis 2000: Das Web 1.0
        2. 1.1.2 2000 bis 2010: Das Web 2.0
        3. 1.1.3 2010 bis heute: Das Web 3.0
      2. 1.2 JavaScript – Fluch oder Segen?
        1. 1.2.1 Die Nachteile von JavaScript
        2. 1.2.2 Die Vorteile von JavaScript
        3. 1.2.3 Die Ausführungsgeschwindigkeit
        4. 1.2.4 JavaScript = LISP im Webbrowser
      3. 1.3 Node.js im Überblick
        1. 1.3.1 Wie baut man moderne Webanwendungen?
        2. 1.3.2 Die Idee hinter Node.js
        3. 1.3.3 Wofür eignet sich Node.js?
      4. 1.4 Zusammenfassung
    2. 2 Installation und Konfiguration
      1. 2.1 Die Qual der Wahl: Welche Plattform?
        1. 2.1.1 Linux
        2. 2.1.2 Mac OS X
        3. 2.1.3 Windows
      2. 2.2 Installation unter Linux
        1. 2.2.1 Node.js per Hand übersetzen
        2. 2.2.2 Vorgefertigte Pakete verwenden
      3. 2.3 Installation unter Mac OS X
        1. 2.3.1 Den Macintosh Installer verwenden
      4. 2.4 Installation unter Windows
        1. 2.4.1 Den Windows Installer verwenden
      5. 2.5 Testen der Installation
        1. 2.5.1 Node.js starten
        2. 2.5.2 Node.js beenden
        3. 2.5.3 Die installierte Version ermitteln
      6. 2.6 Zusammenfassung
    3. 3 Erste Schritte: Hallo Node.js!
      1. 3.1 Hallo Node.js!
        1. 3.1.1 Die Anwendung starten
        2. 3.1.2 Asynchrone Ausführung
        3. 3.1.3 Die Anwendung beenden
      2. 3.2 Einen http-Server implementieren
        1. 3.2.1 Das http-Modul
        2. 3.2.2 Einen http-Server starten
        3. 3.2.3 Der Umgang mit Headern
        4. 3.2.4 Eine Anwendung skalieren
      3. 3.3 Einen TCP-Server implementieren
        1. 3.3.1 Das net-Modul
        2. 3.3.2 Einen TCP-Server starten
        3. 3.3.3 Daten verarbeiten
      4. 3.4 Events
        1. 3.4.1 Das EventEmitter-Objekt
        2. 3.4.2 Auf Ereignisse reagieren
        3. 3.4.3 Ereignisse deregistrieren
      5. 3.5 Das Beispielprojekt
        1. 3.5.1 Was ist silkveil.js?
        2. 3.5.2 Anforderungen und Einschränkungen
        3. 3.5.3 Implementierung
      6. 3.6 Zusammenfassung
    4. 4 Module verwenden: require & Co.
      1. 4.1 Die require-Funktion
        1. 4.1.1 Integrierte Module
        2. 4.1.2 Externe Module als Datei
        3. 4.1.3 Externe Module als Verzeichnisse
        4. 4.1.4 Das node_modules-Verzeichnis
        5. 4.1.5 Caching
        6. 4.1.6 Das exports-Objekt
      2. 4.2 Die integrierten Module im Überblick
        1. 4.2.1 Kategorien
        2. 4.2.2 TCP und Web
        3. 4.2.3 Lokales System
        4. 4.2.4 Daten und Kommunikation
        5. 4.2.5 Werkzeuge
      3. 4.3 Das Beispielprojekt
        1. 4.3.1 Anforderungen und Einschränkungen
        2. 4.3.2 Implementierung
      4. 4.4 Zusammenfassung
    5. 5 Node.js erweitern: Die Paketverwaltung npm
      1. 5.1 Der Node.js Package Manager (npm)
        1. 5.1.1 Was ist npm?
        2. 5.1.2 npm installieren
        3. 5.1.3 Installation testen
      2. 5.2 Umgang mit Modulen
        1. 5.2.1 Module installieren
        2. 5.2.2 Module aktualisieren
        3. 5.2.3 Module entfernen
        4. 5.2.4 Module suchen
      3. 5.3 Abhängigkeiten verwalten
        1. 5.3.1 Die Datei package.json
        2. 5.3.2 Abhängigkeiten automatisch auflösen
      4. 5.4 Eigene Module entwickeln
        1. 5.4.1 Ein Konto für npm anlegen
        2. 5.4.2 Ein Modul veröffentlichen
      5. 5.5 Das Beispielprojekt
        1. 5.5.1 Anforderungen und Einschränkungen
        2. 5.5.2 Implementierung
      6. 5.6 Zusammenfassung
    6. 6 Fehlersuche und -behebung: Arbeiten mit dem Debugger
      1. 6.1 Der integrierte Debugger von Node.js
        1. 6.1.1 Den Debugger starten
        2. 6.1.2 Die Ausführung steuern
        3. 6.1.3 Umgang mit Haltepunkten
        4. 6.1.4 Objekte überwachen
      2. 6.2 node-inspector
        1. 6.2.1 Grafisches Debuggen
        2. 6.2.2 Den Debugger starten
        3. 6.2.3 Die Ausführung steuern
        4. 6.2.4 Umgang mit Haltepunkten
        5. 6.2.5 Objekte überwachen
      3. 6.3 Das Beispielprojekt
        1. 6.3.1 Anforderungen und Einschränkungen
        2. 6.3.2 Implementierung
      4. 6.4 Zusammenfassung
    7. 7 Testen, testen, testen: Assert, Mocha & Co.
      1. 7.1 Arrange, Act, Assert
        1. 7.1.1 Wie funktioniert das »Assert«?
        2. 7.1.2 Das assert-Modul
        3. 7.1.3 should
        4. 7.1.4 node-assertthat
      2. 7.2 Mocha als Testumgebung
        1. 7.2.1 Was ist Mocha?
        2. 7.2.2 TDD oder BDD?
        3. 7.2.3 TDD mit Mocha
        4. 7.2.4 BDD mit Mocha
        5. 7.2.5 Testausgabe aufbereiten
      3. 7.3 Das Beispielprojekt
        1. 7.3.1 Anforderungen und Einschränkungen
        2. 7.3.2 Implementierung
      4. 7.4 Zusammenfassung
    8. 8 Deployment und Betrieb: Cluster, Nginx & Co.
      1. 8.1 Node.js neu starten
        1. 8.1.1 Das cluster-Modul
        2. 8.1.2 forever
      2. 8.2 Node.js als Dienst ausführen
        1. 8.2.1 Allgemeines
        2. 8.2.2 Upstart
      3. 8.3 Node.js intern hosten
        1. 8.3.1 Was ist Nginx?
        2. 8.3.2 Installation von Nginx
        3. 8.3.3 Konfiguration von Nginx
        4. 8.3.4 Integration von Node.js und Nginx
        5. 8.3.5 Node.js und IIS
      4. 8.4 Node.js extern hosten
        1. 8.4.1 Heroku
        2. 8.4.2 Windows Azure
      5. 8.5 Das Beispielprojekt
        1. 8.5.1 Anforderungen und Einschränkungen
        2. 8.5.2 Implementierung
      6. 8.6 Zusammenfassung
  8. Teil 2 ... & Co.
    1. 9 Eine Middleware für Node.js: Connect
      1. 9.1 Middleware entwickeln
        1. 9.1.1 Was ist Middleware?
        2. 9.1.2 Filter und Provider
        3. 9.1.3 Umgang mit Fehlern
      2. 9.2 Connect verwenden
        1. 9.2.1 Connect installieren
        2. 9.2.2 Zusammenfügen einer Anwendung
        3. 9.2.3 Setup-Funktionen für Module
        4. 9.2.4 Module an Routen binden
      3. 9.3 Die integrierten Module im Überblick
        1. 9.3.1 Kategorien
        2. 9.3.2 Anfragen und Antworten
        3. 9.3.3 Parser
        4. 9.3.4 Webserver und Sessions
        5. 9.3.5 Werkzeuge
      4. 9.4 Module von Drittanbietern
        1. 9.4.1 Datenquellen für Sessions
        2. 9.4.2 Sonstige Module
      5. 9.5 Das Beispielprojekt
        1. 9.5.1 Anforderungen und Einschränkungen
        2. 9.5.2 Implementierung
      6. 9.6 Zusammenfassung
    2. 10 Ein Grundgerüst für jede Webanwendung: Express
      1. 10.1 Express installieren
        1. 10.1.1 Installation
        2. 10.1.2 Eine Webanwendung erzeugen
        3. 10.1.3 Express global installieren
      2. 10.2 Webanwendungen konfigurieren
        1. 10.2.1 Konfigurationsblöcke verwenden
        2. 10.2.2 Konfigurationseinstellungen von Express
      3. 10.3 Routen verwenden
        1. 10.3.1 Routen definieren
        2. 10.3.2 Parameter verwenden
      4. 10.4 Middleware verwenden
        1. 10.4.1 Middleware für Routen
        2. 10.4.2 Middleware für Parameter
      5. 10.5 http-Methoden verarbeiten
        1. 10.5.1 POST
        2. 10.5.2 PUT und DELETE
        3. 10.5.3 Methodenunabhängiger Code
      6. 10.6 Webseiten dynamisch erzeugen
        1. 10.6.1 Vorlagen verwenden
        2. 10.6.2 Parser integrieren
      7. 10.7 Das Beispielprojekt
        1. 10.7.1 Anforderungen und Einschränkungen
        2. 10.7.2 Implementierung
      8. 10.8 Zusammenfassung
    3. 11 Vorlagen, HTML und CSS: Jade und Stylus
      1. 11.1 Jade
        1. 11.1.1 Installation und Konfiguration
        2. 11.1.2 Vorlagen definieren
        3. 11.1.3 Vorlagen und Daten verknüpfen
        4. 11.1.4 Vorlagen und Code verknüpfen
        5. 11.1.5 Vorlagen verschachteln
      2. 11.2 Stylus
        1. 11.2.1 Installation und Konfiguration
        2. 11.2.2 Vorlagen definieren
        3. 11.2.3 Vorlagen mit Code verknüpfen
      3. 11.3 Das Beispielprojekt
        1. 11.3.1 Anforderungen und Einschränkungen
        2. 11.3.2 Implementierung
      4. 11.4 Zusammenfassung
    4. 12 Client und Server verbinden: Socket.io und NowJS
      1. 12.1 Socket.io
        1. 12.1.1 Abstraktion von Websockets
        2. 12.1.2 Installation und Konfiguration
        3. 12.1.3 Client und Server verbinden
        4. 12.1.4 Vom Client zum Server
        5. 12.1.5 Vom Server zum Client
        6. 12.1.6 Ereignisse bestätigen
        7. 12.1.7 Socket.io und Firewalls
        8. 12.1.8 Socket.io und Hosting
      2. 12.2 NowJS
        1. 12.2.1 Abstraktion von Socket.io
        2. 12.2.2 Installation und Konfiguration
        3. 12.2.3 Client und Server verbinden
        4. 12.2.4 Vom Client zum Server
        5. 12.2.5 Vom Server zum Client
        6. 12.2.6 Verbindungen verwalten
      3. 12.3 Das Beispielprojekt
        1. 12.3.1 Anforderungen und Einschränkungen
        2. 12.3.2 Implementierung
      4. 12.4 Zusammenfassung
    5. 13 Datenbanken ansprechen: Redis, MongoDB und PostgreSQL
      1. 13.1 Redis
        1. 13.1.1 Datenbanktypen
        2. 13.1.2 Was ist Redis?
        3. 13.1.3 Installation und Konfiguration
        4. 13.1.4 Verbinden
        5. 13.1.5 Anweisungen ausführen
        6. 13.1.6 Datentypen
        7. 13.1.7 Performance
        8. 13.1.8 Replikation
      2. 13.2 MongoDB
        1. 13.2.1 Was ist MongoDB?
        2. 13.2.2 Installation und Konfiguration
        3. 13.2.3 Verbinden
        4. 13.2.4 Zugriff auf Collections
        5. 13.2.5 Zugriff auf Dokumente
        6. 13.2.6 Indizierung von Dokumenten
        7. 13.2.7 Replikation und Sharding
        8. 13.2.8 GridFS
      3. 13.3 PostgreSQL
        1. 13.3.1 NoSQL versus SQL
        2. 13.3.2 Installation und Konfiguration
        3. 13.3.3 Verbinden
        4. 13.3.4 Abfragen ausführen
      4. 13.4 Das Beispielprojekt
        1. 13.4.1 Anforderungen und Einschränkungen
        2. 13.4.2 Implementierung
      5. 13.5 Zusammenfassung
    6. 14 Verteilte Webanwendungen: Kue
      1. 14.1 Installation und Konfiguration
        1. 14.1.1 Kue installieren
        2. 14.1.2 Redis konfigurieren
      2. 14.2 Aufträge vergeben
        1. 14.2.1 Queue erzeugen
        2. 14.2.2 Aufträge vergeben
        3. 14.2.3 Prioritäten setzen
        4. 14.2.4 Wiederholen im Fehlerfall
        5. 14.2.5 Verzögertes Ausführen
        6. 14.2.6 Aufträge überwachen
        7. 14.2.7 Aufträge grafisch verwalten
        8. 14.2.8 Aufträge per REST verwalten
      3. 14.3 Aufträge verarbeiten
        1. 14.3.1 Queue erzeugen
        2. 14.3.2 Aufträge verarbeiten
        3. 14.3.3 Aktivität anzeigen
        4. 14.3.4 Aufträge parallel verarbeiten
      4. 14.4 Das Beispielprojekt
        1. 14.4.1 Anforderungen und Einschränkungen
        2. 14.4.2 Implementierung
      5. 14.5 Zusammenfassung
    7. 15 Infrastruktur verwenden: Amanda, Lingua und Passport
      1. 15.1 Amanda
        1. 15.1.1 Was ist Amanda?
        2. 15.1.2 Installation und Konfiguration
        3. 15.1.3 Schema definieren
        4. 15.1.4 Schema validieren
        5. 15.1.5 Fehler behandeln
      2. 15.2 Lingua
        1. 15.2.1 Was ist Lingua?
        2. 15.2.2 Installation und Konfiguration
        3. 15.2.3 Ressourcendateien
        4. 15.2.4 Statische Texte ausgeben
        5. 15.2.5 Dynamische Texte ausgeben
        6. 15.2.6 Sprache auswählen
      3. 15.3 Passport
        1. 15.3.1 Was ist Passport?
        2. 15.3.2 Installation und Konfiguration
        3. 15.3.3 Ressourcen schützen
        4. 15.3.4 Benutzername und Kennwort
        5. 15.3.5 OpenID
        6. 15.3.6 Andere Authentifizierungsanbieter
        7. 15.3.7 Abmelden
      4. 15.4 Das Beispielprojekt
        1. 15.4.1 Anforderungen und Einschränkungen
        2. 15.4.2 Implementierung
      5. 15.5 Zusammenfassung
    8. 16 Code optimieren: Piler
      1. 16.1 Piler
        1. 16.1.1 Installation und Konfiguration
        2. 16.1.2 JavaScript-Dateien verarbeiten
        3. 16.1.3 CSS-Dateien verarbeiten
        4. 16.1.4 CSS-Dateien in Echtzeit aktualisieren
        5. 16.1.5 Namensräume verwenden
        6. 16.1.6 Code zwischen Client und Server teilen
        7. 16.1.7 Andere Compiler integrieren
      2. 16.2 Das Beispielprojekt
        1. 16.2.1 Anforderungen und Einschränkungen
        2. 16.2.2 Implementierung
      3. 16.3 Zusammenfassung
  9. Nachwort
  10. Index
  11. Fußnoten
    1. Vorwort
    2. Kapitel 1
    3. Kapitel 2
    4. Kapitel 3
    5. Kapitel 4
    6. Kapitel 5
    7. Kapitel 6
    8. Kapitel 7
    9. Kapitel 8
    10. Kapitel 9
    11. Kapitel 10
    12. Kapitel 11
    13. Kapitel 12
    14. Kapitel 13
    15. Kapitel 14
    16. Kapitel 15
    17. Kapitel 16
    18. Nachwort