In diesem Modul in der allerersten Lektion
haben wir gelernt, wie man einen vollwertigen REST-API-Server mit Express erstellt.
So sind wir in der Lage, die GET-, PUT-, POST-
und DELETE-Anfragen zu den verschiedenen REST-API-Endpunkten zu bedienen.
Aber der Server selbst gab einfach
eine einfache Nachricht als Antwort auf diese Anfragen zurück.
In einem echten REST-API-Server
wird jede eingehende Anfrage eine entsprechende Operation zur Folge haben, die auf der Rückseite in
der Datenbank ausgeführt wird, um möglicherweise Daten abzurufen, um auf eine GET-Anfrage zu antworten,
oder vielleicht um Daten zu ändern, die auf dem Server als Antwort auf eine PUT-Anfrage vorhanden sind.
Jetzt im Rest dieses Moduls
haben wir untersucht, wie wir von einer Knotenanwendung mit einem MongoDB-Server interagieren können,
sei es mit dem MongoDB-Treiber oder mit Mongoose.
Jetzt ist ein vollwertiger REST-API-Server, der in der Lage ist,
die Anforderung Ende zu Ende zu verarbeiten, nur möglich, wenn wir die beiden zusammen kombinieren.
Das heißt, ein express-basierter Server,
der die gesamte Geschäftslogikverarbeitung durchführt und gleichzeitig
die Datenbankanforderungen an die MongoDB
mit dem Knoten MongoDB-Treiber oder mit Mongoose ausgibt.
Wie kombinieren wir die beiden zusammen?
Das werden wir also in dieser Lektion betrachten,
und die beiden Übungen, die wir im Rahmen dieser Lektion durchführen werden.
Wir haben nun gelernt, wie man
einen REST-API-Server mit Express erstellt
und die verschiedenen Anforderungen an die REST-API-Endpunkte bearbeitet.
Wir haben auch gesehen, wie wir mit der Datenbank von unserer Knotenanwendung interagieren können.
Nun, da Sie eine GET-Anfrage an den Server als Beispiel haben,
bedeutet eine GET-Anfrage, die vom Client kommt, um diese GET-Anforderung Ende zu Ende zu behandeln, dass der Client
Daten vom Server abrufen und diese Daten verwenden möchte.
Also, eine GET-Anfrage, die in den Server kommt, muss
durch die verschiedenen Verarbeitung verarbeitet werden, zum Beispiel durch
den Express-Server und sobald die Verarbeitung abgeschlossen ist, dann
erkennt die Geschäftslogik des Express-Servers, dass es
einen Abfragevorgang für die Datenbank ausführen muss.
Dies kann also eine Abfrage an die Datenbank initiieren, um
einen Satz von Dokumenten aus der Datenbank zu holen,
und dann werden die abgerufenen Daten dann
in eine Antwortnachricht umgewandelt und dann an den Server zurückgesendet.
Diese End-to-End-Verarbeitung der Anfrage und Antwort umfasst also zwei Teile.
Einer natürlich macht die Geschäftslogik im
Express-Server und macht dann die Interaktion mit der
Datenbank von der Knotenanwendung vom Express-Server, der
eine Knotenanwendung ist, die entweder MongoDB-Treiber oder Mongoose verwendet.
Wir werden Mongoose in den Übungen verwenden.
In ähnlicher Weise
bedeutet eine POST-Anforderung, die an den REST-API-Endpunkt auf
dem Server kommt, dass die POST-Anforderung einige Daten in den Nachrichtentext einfügt.
Diese Informationen müssen also
auf dem Express-Server verarbeitet werden und die Informationen, die in der
Datenbank gespeichert werden müssen, sollten aus dem Hauptteil der eingehenden POST-Anforderung abgerufen werden und dann
muss die entsprechende Erstellungsanforderung
vom Express-Server erstellt oder initiiert werden, um die MongoDB-Datenbank
und in der Create-Anfrage
werden die Informationen, die aus dem Hauptteil der POST-Anforderung abgerufen wurden, an
die Datenbank gesendet, um ein neues Dokument in einer bestimmten Sammlung in der Datenbank zu erstellen.
Und dann wird das Ergebnis dieses Vorgangs in der
Antwortnachricht an den Client zurückgesendet.
Jede Operation, die an einem REST-API-Endpunkt ausgeführt wird, unabhängig davon, ob es sich um
einen GET, einen PUT
, einen POST oder einen
DELETE-Vorgang handelt,
wird also hinter den Kulissen eine entsprechende Datenbankoperation initiieren.
Nachdem wir diese Interaktion verstanden haben,
erkennen wir, dass eine HTTP-Anfrage, die an
einen REST-API-Endpunkt eingeht, in eine entsprechende Datenbankoperation abgebildet werden muss.
Jede eingehende Anforderung, GET, PUT, POST
oder DELETE bedeutet, dass auf eine bestimmte Ressource in der Datenbank zugegriffen
werden kann, abgerufen werden kann oder eine Gruppe von Ressourcen
aus der Datenbank abgerufen und dann zurück an den Server gesendet werden kann,
oder eine Ressource kann als Antwort auf eine PUT oder eine POST
oder sogar eine DELETE-Anfrage, die an den REST API-Server gesendet wird.
Es liegt also an der Express-Serverlogik,
der im Express REST API-Server implementierten Geschäftslogik,
diese Übersetzung der eingehenden Anforderung zu handhaben, unabhängig davon, ob es sich um eine GET-,
PUT-, POST- oder DELETE-Anforderung in den entsprechenden Datenbankvorgang handelt.
Schauen wir uns ein Beispiel dafür ein wenig genauer an. Wenn man
also zu der Kombination des Express-Routers plus
MongoDB plus Mongoose kommt, die als ODM dazwischen fungieren,
müssen die Operationen der Datenbank
innerhalb des Routers initiiert werden, den wir für jeden der REST-API-Endpunkte erstellt haben.
Also innerhalb des Routers,
sogar die GET-Methode,
die PUT- oder die POST-Methode.
Die entsprechende Aktion, die auf der Datenbank ausgeführt werden soll, unabhängig davon, ob es sich
um eine GET-Anfrage handelt, die eine Gerichte Finding-Methode ausführt oder
eine POST-Anfrage verursacht, die eine Gerichte erstellen Methode ausgeführt
wird, muss von unserem Express-Server durchgeführt werden, was dazu führt,
dass die entsprechende Operation , die in der MongoDB-Datenbank initiiert wurde.
Also mit diesem Verständnis,
wie die Anforderungen in eine entsprechende Datenbankoperationen übersetzt werden,
lassen Sie uns zu den beiden Übungen fortfahren, wo wir bei der Behandlung der GET, PUT, POST
und DELETE Anfrage, die zu den /Dishes/:dishid Endpunkten kommen, und
auch spezifische Kommentare, die sich in
den Unterdokumenten befinden, die innerhalb des Dokumentes eingeschlossen sind.