Zum Inhalt springen

Node.js Beispiel

    Bei diesem Projekt wird ein Gästebuch erstellt, der mir die Möglichkeit gibt, Gästebucheinträge zu verfassen und diese anzuzeigen.

    Beitrag erstellen
    Alle Beiträge anzeigen
    Die Admin Seite kann nur nach der Eingabe von Benutzername und Passwort aufgerufen werden.

    Projekt Download via Git: GitHub Link

    Für die Erstellung der Webseite wurden folgende Node.js Module/Pakete verwendet.

    express
    Handlebars
    nodemon
    validator
    body-parser
    i18n
    mongodb
    mongoose
    passport
    passport-local
    winston

    Die obigen Pakete befinden sich nach der Installation in dem Ordner ’node_modules‘. Dieser Ordner wurde aufgrund der Größe nicht innerhalb der Repository eingecheckt.

    Alle installierten Pakete sind innerhalb der Datei ‚package.json‘ aufgelistet. Mit dem Befehl ’npm install‘ werden alle Pakete aus ‚package.json‘ ermittelt und nachinstalliert:

    Die UI wurde mit Hilfe von Bootstrap realisiert. Die Installation von Bootstrap wurde mit dem Paketmanager Bower vorgenommen, da dieser alle Abhängigkeiten auf Anhieb sauber installiert hat. Der Installationspfad der Bower Pakete kann innerhalb der Datei .bowerrc angegeben werden.

     

    Die Anwendung verwendet MongoDB. Der MongoDB Server kann nach der Installation mit dem Befehlt ‚mongod‘ gestartet werden:

    Vor dem Start muss jedoch angegeben werden, wo sich die generierte Datenbank z.B. guestbook befinden soll. Standardverzeichnis ist ‚C:\data\db‘. Der Ordner muss zunächst manuell angelegt werde. Mit dem Befehlt ‚mongod –dbpath ~/neues_pfad‘ kann ein anderer Pfad angegeben werden.

    Die MongoDB Datenbank kann mithilfe der GUI Robo 3T administriert werden:

    Robo 3T Konfiguration:

    Die Anwendung kann anschließend mit dem Befehl ’nodemon‘ gestartet werden:

     

    Projekt Aufbau

    Die Struktur der Webseite ist wie folgt:

    Struktur der Seite

    Als ‚view engine‘ wird ‚handlebars.js‘ eingesetzt. Die einzelnen Seiten befinden sich in dem Ordner ‚views‘ mit der Endung *.hbs. Damit der Header und der Footer zentral verwaltet werden, wurden diese als ‚partial‘ innerhalb der einzelnen *.hsb Seiten eingebunden.

     

    Die Internationalisierung wurde mit dem Modul ‚i18n‘ realisiert. Die Sprachdateien befinden sich in dem Ordner ‚locales‘.

    Ein Eintrag wird vor der Speicherung validiert. Die Validierung erfolgt nach einem zuvor definiertem Schema.

    Bei der Datei ‚connector.js‘ innerhalb des ‚db‘ Ordners handelt es sich um ein MongoDB connector:

    In dem Ordner ’secret‘ wurde ein Zertifikat und ein Schlüssel generiert. Diese werden für eine Https Verbindung benötigt.

    Die Datei ‚db_services.js‘ aus dem Ordner ’services‘ beinhaltet alle Methoden, die für die Interaktion mit der Datenbank benötigt werden:

    Die Startdatei ‚app.js‘ beinhaltet unter anderem die Definition der Routen, und die Konfiguration der Anwendung, Middleware, Server, Logging und Internationalisierung: