Node.js kann mit seiner zu bietenden Flexibilität und recht freien „Syntax“ (missing strict guidlines?!) ziemlich überwältigend für Anfänger wirken.

 

Deshalb soll dieses Tutorial eine schnelle und einfache Einführung in Node.js, dem Express Framework und der NoSQL Datenbank (MongoDB) bieten.

Unser Fokus wird dabei auf der Erstellung Grundlegender REST Endpunkte sowie simple Datenbank Interkationen liegen. Diese legen den Grundstein/Fundament auf denen man aufbauen kann.

Wichtig hierbei ist: Dass du Grundkenntnisse über REST, CRUD und Javascript bzw. ECMAScript besitzt.

 

Hierfür werden wir ein Backend schreiben, welches Bücher verwalten kann.

Projekt Setup

Wenn du noch nicht Node installiert hast, schau dir das an.

Leg einen neuen Ordner für unser Projekt an und führe über die Bash auf diesen Ordner diesen Befehl aus:

npm init

Wenn das erledigt ist, solltest du eine package.json in diesem Ordner besitzen. Das bedeutet, dass wir nun die Möglichkeit haben unserem Projekt via NPM, Module hinzuzufügen.

Dazu führen wir diesen Befehl aus:

npm i express mongoose

Hiermit haben wir uns das Express Framework und Mongoose Module unserem Projekt hinzugefügt.

Express ist ein Framework, dass uns ungemein dabei hilft schnell ein Backend auf die Beine zu stellen.

Mongoose hingegen baut auf den MongoDB Treiber auf um Modelbasiert Datenbankanfragen zu stellen.

 

Zusätzlich empfehle ich nodemon Global zu installieren. Hierdurch lässt sich nodemon nicht nur in einem Projekt verwenden sondern auch in zukünftigen.

npm i -g nodemon

Nodemon überwacht unser Projekt auf Änderungen und startet dieses automatisch neu, ohne jegliches zu tun.

So in etwa sollte dann deine package.json aussehen:

Package.json

 

 

Unser Server

Zunächst einmal binden wir alle benötigten Module in unsere index.js ein.

Node.js Express imports

Als nächstes benötigen wir noch eine Instanz von Express und weisen dieser einen Port zu auf dem der Server HTTP Anfragen annimmt.

Node.js Express Port listening

Wenn wir nun nodemon ausführen bzw. npm run dev oder node index.js, können wir in der Konsole sehen, dass der Server auf unserem gewünschten Port live gegangen ist.

Nodemon Server gestartet

Können tut er leider noch nichts, deshalb lass uns nun ein paar Endpunkte hinzufügen.

 

 

 

 

CRUD Endpunkte

Jetzt sind wir so weit Endpunkte unserem Server hinzuzufügen. Wir werden zum Schluss die Möglichkeit haben Bücher hinzuzufügen, zu entfernen, zu lesen und Ihre Daten up zu daten.

Hiermit soll ein ein Grundverständnis der Routing Struktur von Node vermittelt werden.

Um unsere Endpunkte bzw. API´s zu testen, werden wir eine Applikation verwenden die sich Postman nennt. Mithilfe von Postman lässt sich schnell und einfach verschiedenste HTTP Request an einen Server zu schicken.

Hier geht es zu Postman

 

Projektstruktur

Auch wenn wir nur eine kleine Applikation schreiben sollten wir lernen eine gewisse Übersicht zu bewahren. Deshalb werden wir unser Projekt so strukturieren, dass unsere Routen (Endpunkte) und Models jeweils in einem eigenen Verzeichnis liegen.

Node.js Projektstruktur

Das C in CRUD

Lass uns nun eine Create Route erstellen um ein Buch anlegen zu klönnen.

Dazu legen wir eine book.js unter routes an.

So in etwa:

Node.js Express Post Route Hello World

Wir machen nichts anderes als Express zu sagen, dass wir unter der URI /book einen POST Request entgegen nehmen möchten und geben bei einer Erfolgreichen Anfrage ein Request (req) Objekt (welche Daten vom Client enthält) so wie ein Response Objekt(res) in die Callback Funktion. Wir verwenden das Response Objekt um einen HTTP Status Code 200, welcher so viel bedeutet wie alles OK, und ein kleines „Hello World“ zurück geben zu können.

Als letztes müssen wir noch unsere Route unserer Express instanz bekannt machen. Deshalb exportieren wir unser api Objekt und binden diese so ein:

Node.js Express Route der Express Instanz kenntlich machen

Lass uns diese nun mithilfe Postman testen.

Postman Hello World Post Request

Cool! Wir haben unsere erste Route erstellt.

Als nächstes lass uns ein paar Parameter mitgeben und diese in unserer API verarbeiten und in schließlich in unserer Datenbank anlegen

 

 

 

 

 

Request Parameter

Versuchen wir einfach mal in Postman unter x-www-form-urlencoded im Body ein paar Key-Value´s mitgeben.

Durch den Content-Type x-www-form-urlencoded ist es uns möglich die mitgelieferten Daten zu auf unserem Server zu verarbeiten.

(Bild Postman Key-Value)

Postman Node.js Buch Post Request mit Body

In unserem Server wollen wir erstmal den mitgelieferten Body ausgegeben haben wollen:

Form Data Request ohne Bodyparser liefert undefined

Autsch! wir bekommen nur ein ‚undefined‘ zurück…

Das liegt daran, dass Express von Haus aus keine URL encoded Forms verarbeiten kann.

Deshalb müssen wir noch den bodyParser in unserer index.js mit einbinden.

Aber zuerst einmal „npm i body-parser“ in die Bash

Bodyparser als Middleware in Express einbinden

Jetzt sollten wir, wenn wir noch einmal einen Request an den Server schicken, unsere mitgelieferten Daten ausgegeben bekommen.

Node.js Post Request Body Rückgabe

Nun zur Datenbank

Ich gehe davon aus, dass die MongoDB bereits installiert ist.

Dazu legen wir uns einen config Ordner an und legen unsere Datenbank URL in einer config.js ab.

In dieser können wir auch unseren Port für den Server hinterlegen.

Node.js config.js

In unserer index.js müssen wir nun mithilfe mongoose die Datenbank verbindung aufbauen.

Das würde so aussehen:

Verbindung mit der MongoDB via mongoose

 

 

Datenbank

Datenbank Model

Mit Mongoose können wir angeben wie unser Buch Schema in unserer Datenbank aussehen soll.

Mongoose Buch Schema

Um schließlich unsere Daten in die Datenbank ablegen zu können. Erstellen wir ein Objekt dieses Mongoose Buch Models und können darauf die speicher Funktion aufrufen.

Node.js Express Post Model speichern

Zusätzlich übergeben wir der .save Funktion einen weiteren Parameter, den wir loggen. Dadurch können wir sehen wie unser Buch Objekt in der Datenbank abgelegt worden ist.

MongoDB Datenbank Ausgabe bei Post Request

 

Die anderen CRUD Operatoren

Nun möchten wir ein Buch aus unserer Datenbank lesen bzw. zurückliefern. Dazu bietet sich die findById() Methode von Mongoose an.

Node.js Express getByID

Dazu nehmen wir die einzigartige ObjectId, welche jeder Datensatz in MongoDB erhält

Postman Get By Id

und wenn wir alle Bücher zurückliefern möchten übergeben wir nichts:

Node.js get All from DB

wesentlich unterscheiden tun sich die Methoden zum updaten und löschen von Büchern nicht von den anderen

Node.js Delete and Update Route

 

 

Fertig!

Wir haben nun eine Funktionierenden Node Server welcher die wesentlichen CRUD Methoden unterstützt.

Dieses Tutorial war dazu da, um dir Express, Node und MongoDB näher zu bringen. Diese App die wir gemeinsam erstellt haben, kannst du nun als Sprungbrett für komplexere Applikationen verwenden.

Danke für´s lesen 🙂

 

Cookie-Einstellung

Bitte treffen Sie eine Auswahl. Weitere Informationen zu den Auswirkungen Ihrer Auswahl finden Sie unter Hilfe.

Treffen Sie eine Auswahl um fortzufahren

Ihre Auswahl wurde gespeichert!

Hilfe

Hilfe

Um fortfahren zu können, müssen Sie eine Cookie-Auswahl treffen. Nachfolgend erhalten Sie eine Erläuterung der verschiedenen Optionen und ihrer Bedeutung.

  • Alle Cookies zulassen:
    Jedes Cookie wie z.B. Tracking- und Analytische-Cookies.
  • Nur First-Party-Cookies zulassen:
    Nur Cookies von dieser Webseite.
  • Keine Cookies zulassen:
    Es werden keine Cookies gesetzt, es sei denn, es handelt sich um technisch notwendige Cookies.

Sie können Ihre Cookie-Einstellung jederzeit hier ändern: Startseite. Startseite

Zurück