[MUSIC]
Jetzt, da wir REST-API verstanden haben und die Unterstützung für
REST-API ausdrücken, gehen wir mit der nächsten Übung über.
Wo wir uns ansehen werden, wie wir die REST-API
mit der Unterstützung von express entwickeln werden.
Und auch die Verwendung von Express-Router,
ermöglicht es uns, unseren Code in einer Weise zu organisieren, die besser geeignet ist,
wenn Sie eine große Anzahl von REST-API-Endpunkten unterstützen müssen.
Um zu beginnen, weiter mit dem Node-Express-Ordner
haben wir auf dem express-basierten Webserver gearbeitet.
Lassen Sie uns an der Eingabeaufforderung body-parser installieren
, geben Sie dazu npm install body-parser —save ein.
Und wir verwenden die 1.18.3 Version von
body-parser in diesem Kurs hier.
Jetzt, sobald wir Body-Parser installiert haben, dann gehen Sie in unseren Code.
Lassen Sie mich in der index.js5 BodyParser benötigen, also
sagen wir const bodyParser
erfordert body-Parser.
Und dann, wenn Sie eine Middleware verwenden müssen,
sagen Sie, app.use (BodyParser.json).
Dies ermöglicht es uns, den Körper der Anforderungsnachricht zu analysieren,
die im JSON-Format formatiert ist.
Sobald wir das abgeschlossen haben, beginnen wir mit
dem Aufbau der REST-API-Unterstützung für den /dishs-Endpunkt.
Die Verwendung der app.all, app.get, put, post und
delete Methoden werden von express unterstützt.
Lassen Sie mich damit beginnen,
app.all zu sagen, und die ersten Parameter,
die app.all nimmt, sind der Endpunkt.
In diesem Fall gebe ich den Endpunkt von /dishesan.
Und dann ist der zweite Parameter die Callback-Funktion,
req, res, als nächstes die drei Parameter hier.
Und innerhalb dieser Callback-Funktion werden wir die eingehende Anfrage behandeln.
Also werden wir sagen, wenn eine Anfrage eingeht, für alle Anfragen.
Wenn wir also app.all sagen, unabhängig davon, welche Methode aufgerufen wird,
get, put, post oder delete, für den /dishes-REST-API-Endpunkt,
wird dieser Code zuerst hier standardmäßig ausgeführt.
Also sagen wir res StatusCode ist 200 und
dann res.setHeader und
sagen wir Content-Type Text.
Wir senden jetzt Nur-Text anstelle von HTML-Text.
Dies sollte für REST-API-Endpunkte ausreichen.
Später senden wir die Daten in Form von JSON, sobald
wir die Daten aus der Datenbank abrufen können.
Das wird also in einer der späteren Übungen kommen.
Im Moment senden wir einfach Klartext-Antworten an den Kunden zurück.
Nun nach diesen beiden ist die Middleware hier noch nicht abgeschlossen.
Also werden wir die nächste Funktion hier aufrufen, also bezieht sich die nächste, wie Sie sehen, auf diese nächste.
Also, wenn Sie als nächstes anrufen, was es bedeutet, dass es weiterhin nach
zusätzlichen Spezifikationen unten hier unten zu suchen,
die diesem Geschirr Endpunkt entsprechen wird.
Also würde dies für alle Anfragen getan werden, erhalten, setzen, posten und
löschen, auf dem Geschirr, und es wird weiter zum nächsten.
Also hier, nehmen wir an, wir bekommen eine Get-Anfrage
auf Geschirr, was bedeutet, dass jetzt,
wenn wir eine Get-Anfrage auf Geschirr bekommen,
zuerst dies ausgeführt wird, und
dann werden die Req und res
an diesen zweiten Aufruf weitergegeben werden.
Also in diesem Fall werde ich das nächste nicht mehr brauchen,
weil ich nicht weiter nach unten rufen werde.
Ich werde die Handhabung direkt innerhalb dieser Methode hier selbst abschließen.
Wenn wir also die req oder res innerhalb dieses Codes ändern,
wird beim Aufruf des nächsten dieses modifizierte Objekt als Parameter an diesen übergeben.
Also, wenn Sie eine Get-Anfrage auf Geschirr ausgestellt haben, so ist dies, was
direkt danach ausgeführt wird, so dass dies als nächstes wird es dazu führen, weiterzugeben.
Und dann bemerken Sie, dass wir das Res-Objekt hier modifiziert haben.
Und die Modifikation wird als Eingabeparameter zu dieser Funktion hier tragen.
Also in dieser Get-Funktion können wir sagen, zum Beispiel, im Moment,
ich werde einfach eine einfache Nachricht zurücksenden, sagen wir,
wird Ihnen alle Gerichte senden.
Später, wenn wir die Gerichte Informationen aus der Datenbank abrufen,
nachdem wir über MongoDB erfahren haben, dann gibt diese Funktion
diese JSON-Daten zurück an den Client, da es sich hier in einer get Anfrage befindet.
Im vorherigen Kurs hatten wir nun den JSON-Server verwendet, und
der JSON-Server stellte uns alle diese bereits zur Verfügung.
Jetzt sehen Sie, wie Sie
einen echten Server konstruieren würden, der die eingehende Anfrage verarbeitet.
Generieren Sie dann eine entsprechende Antwort und
senden Sie sie als Antwort auf die Anfrage von der Client-Seite erhalten.
Und hier ist der Benutzer Express, wie wir hier sehen, nützlich.
So haben wir gehandhabt bekommen,
lassen Sie uns Post auch auf Geschirr hier behandeln.
Und wieder wären die Parameter (req, res,
next), und diese Funktion, die aufgerufen wird, wird hier sein.
Jetzt, wenn die get-Anfrage empfangen wird, weil Sie hier rest.end aufrufen. Dieses
Ende ist also die Verarbeitung der get-Anfrage und löst nicht die Antwort
zurück gesendet wird oder die Antwort an den Client an diesem Punkt zurückgesendet wird.
Wenn Sie nun eine Post-Anfrage auf Geschirr erhalten, wird dieser ganze Code ausgeführt.
Und dann, aus diesem Grund, wird das hier in diesen Funktionsaufruf fallen.
Und dann wird der Code hier ausgeführt, so dass, wenn Sie einen Beitrag erhalten
Die Postanforderung, die vom Server eingeht, wird einige Informationen
im Hauptteil der Nachricht in Form von JSON-Daten tragen.
Sie werden sehen, was die Form der JSON-Daten ist, wenn wir
später schauen, wenn wir Endpunkt mit post net testen.
Ich zeige Ihnen, was der Text der Post Request Nachricht enthalten wird.
Aber an diesem Punkt, was ich tun werde, ist, dass
ich die Informationen aus dem Körper extrahieren werde.
Und hier, wenn wir den Body Parser verwenden, passiert, dass für
die eingehende Anfrage der Körper der eingehenden Anfrage analysiert und
dann in das Req-Objekt als req.body hinzugefügt wird.
Der req.body gibt Ihnen also Zugriff auf alles, was sich in diesem Textkörper
der Nachricht befindet.
Wenn ich die Anfrage sende,
füge ich dem
Anforderungstext Informationen in Form einer JSON-Zeichenfolge hinzu, die
einen Namen und eine Beschreibung enthält.
Also werde ich diese zwei Informationen extrahieren und sie
dann ausdrucken und sie dann in der Antwortnachricht an den Client zurückschicken.
Also kann ich sagen, req.body.und dann Namen.
Daher ist die Erwartung, dass der Nachrichtentext, wenn der Client
die Postnachricht sendet, eine JSON-Zeichenfolge
enthält, die auch die name-Eigenschaft in der JSON-Zeichenfolge enthält.
Also req.body.name plus und
das ist, wo ich
mit Details einschließen werde: + req.body.description.
Was auch immer die JSON-Zeichenfolge in der req.body enthält, aber
JSON-Zeichenfolge wird in ein JavaScript-Objekt analysiert und
dem Anforderungsobjekt als Eigenschaftskörper hinzugefügt.
Das JavaScript-Objekt verweist auf
das, was als JSON-Zeichenfolge im Hauptteil der Anforderungsnachricht eintrat.
Deshalb bin ich in der Lage, die Name-Eigenschaft, die Beschreibungseigenschaft, zu analysieren,
können Sie die Preiseigenschaft, die Bild-Eigenschaft und all das haben.
Wenn Sie also den vorherigen Kurs absolviert haben, haben Sie die Struktur eines
Dish-Objekts in Form einer JSON-Zeichenfolge oder des JavaScript-Objekts dort gesehen.
Also, der Name und die Beschreibung klingt Ihnen vertraut.
Also genau das, was ich hier benutze.
Im Moment extrahiere ich nur den Namen und die Beschreibung aus der Leiche und
schicke sie dann an den Klienten in diesem Körper zurück.
Also konstruiere ich nur diese Antwortnachricht hier mit den Informationen
aus dem Hauptteil der Anforderungsnachricht und sende sie dann an den Client zurück.
Auf diese Weise kann ich bestätigen, dass der Server empfängt, was ich
im Nachrichtentext sende.
Das ist also die Post-Anfrage.
Lassen Sie mich das jetzt kopieren, und fügen Sie es hier ein.
Und dann für setzen auf diesem Geschirr Endpunkt,
weil es auf dem Geschirr Endpunkt setzen macht keinen Sinn.
Ein Beitrag bedeutet, dass Sie ein neues Gericht auf den Servern veröffentlichen.
Ein Setzen auf den Endpunkt der Gerichte macht keinen Sinn,
also hier, was ich tun werde, ist, dass ich
mit der Nachricht
PUT-Operation, die nicht auf /Gerichte unterstützt wird, zurückantworten werde.
Darüber hinaus werde ich auch, Fügen Sie einen Statuscode von 403.
403 bedeutet, dass ihr Betrieb nicht unterstützt wird.
Wenn Sie also auf die Tabelle HTTP-Antwortcodes zurückblicken,
sehen Sie den entsprechenden Code 403, was er dort darstellt.
Also, das ist, was ich für Post verwende.
Zum Löschen, Ich werde
diese kopieren und zum Löschen werde ich,
Einfach diese analysieren, und dann sagen wir, Löschen alle Gerichte.
Also, wenn Sie eine Löschanforderung für diesen /dishs-Endpunkt senden.
Es wird so interpretiert, dass
der Kunde alle Gerichte Informationen auf der Serverseite löschen möchte.
Dies ist ein gefährlicher Vorgang, also
stellen Sie sicher, dass Sie Partnerbenutzern das nicht erlauben.
Später, wenn wir die Authentifizierung studieren,
werden wir sehen, wie wir diesen Vorgang nur für privilegierte Benutzer überprüfen können.
Aber wie Sie sehen, ist dies eine gefährliche Operation, also denken Sie daran.
So, jetzt sehen Sie, dass im Geschirr Endpunkt, wir haben bekommen, setzen, posten
und löschen Unterstützung.
Lassen Sie uns das auch auf dem Gerichte/:dishid Endpunkt unterstützen.
Also werde ich die Methoden get, put, post und delete von hier kopieren
und dann alle aufrufen, um auch auf
Dishes/:dishid unterstützt zu werden.
Also das ist für die get, und wir kopieren das und
posten, setzen und löschen.
Wie gehen wir mit jedem von diesen um?
Also für get, wenn ich eine Anfrage auf Gerichte/dishid bekomme,
was ich tun möchte, ist, diesen Parameter zu extrahieren und
ihn dann in der Anfrage in der Antwortnachricht zurück zu senden.
Also werden wir sagen, wir senden,
Details des Gerichts.
Welches Gericht jetzt?
Diese Informationen befinden sich im Parameter.
Dieser Parameterwert kann also von
Req.params.dishid abrufen.
Also diese DisHid, wie Sie sehen, sollte der Name, den Sie hier verwenden, diesem Wert hier entsprechen.
Wenn Sie also einfach nur die ID hier sehen,
sollte dies auch der angegebenen SiD hier entsprechen.
Der Name selbst bedeutet also nichts, außer dass dieser Parametername und
dieser übereinstimmen sollte, damit Sie die Informationen korrekt abrufen können.
Also sagen wir, senden Sie die Teller Parameter DishiD und
dann sagen wir Ihnen.
Auf diese Weise wissen wir, dass der Server den Dish-Parameter erhält.
Also, wenn ich sage /dishes/23 gibt es mehrere Antworten
werden die Details des Gerichts 23 an Sie senden und so weiter.
So werden wir sehen, wie es funktioniert, wenn wir post verwenden, um diesen Server zu testen.
Jetzt zum Posten.
Für Post wird diese Methode nicht unterstützt,
also werde ich nur diesen Teil kopieren.
es macht keinen Sinn, einen Beitrag zu einer bestimmten Gericht ID zu machen,
weil Sie nicht versuchen, ein neues Gericht hinzuzufügen.
Aber Sie möchten ändern, und Änderung wird mit der Put-Operation durchgeführt.
Also werden wir sagen, POST-Operation wird nicht auf /dishesunterstützt.
Und dann werde ich hinzufügen in der.
Req.params.dishid.
Dies wird also zurück sagen Post, der nicht auf
Gerichten/23 in der Antwortnachricht unterstützt wird.
Nun, für PUT, Für PUT, werden wir sagen,
res.end und sagen Will, aktualisieren Sie das Gericht.
Req.params.dishid.
Oder besser gesagt, wir machen es so.
Ich schreibe zuerst, also
kann res.write verwendet werden, um der Antwortnachricht eine Zeile hinzuzufügen.
Also sagen wir, das Gericht zu aktualisieren.
Und wir sagen Req.params.dishid.
Und da dies eine PUT-Operation ist und wenn der Körper die JSON-Zeichenfolge enthält,
die die Details des Gerichts enthält,
kann ich die JSON-Zeichenfolge extrahieren, da wir den Body-Parser verwenden.
Also werden wir sagen, Will
das Gericht aktualisieren:.
Welches Gericht?
req.body.name.
Plus.
Mit Details,
req.body.description.
Nun, wenn wir das Gericht aktualisieren, möchte ich eine neue Zeile hinzufügen.
Also werde ich dort '/n' sagen.
Wenn Sie also einen PUT durchführen, senden Sie die Informationen darüber zurück, welche Dish-ID
Sie aktualisieren, und auch die Details, die Sie aktualisieren.
Der Name und die Beschreibung,
die sich im Text der PUT-Nachricht befinden sollten.
Zum Löschen, Es wird sagen Löschen Gericht, und req.params.dishid.
Und zum Löschen ist dies die Operation, die ausgeführt wird.
So sehen Sie, dass wir jetzt die get, put, post und
delete Operationen auf den Dishes/dishid, Endpunkt und
auch die get, put, post Operationen auf dem /dish, endpunkt haben.
Speichern wir nun die Änderungen.
Und starten Sie unseren Server wieder.
Starten Sie den Server, indem Sie npm start sagen.
Lassen Sie uns nun zum Postboten gehen und ein paar Anfragen an diesen Server senden und
sehen, was er zurückgibt.
Lassen Sie mich zuerst ein get auf lokalen Host ausgeben 3,000 und sehen, was es zurückkehrt.
Wenn Sie also eine Anforderung senden, um den lokalen Host 3.000 zu erhalten,
gibt es immer noch die Index-Start-HTML-Seite zurück,
da die statische Dateibehandlung noch vorhanden ist.
Nun lassen Sie mich eine Get-Anfrage an localhost senden: 3000/Gerichte, und dies,
wie Sie erwarten, wird eine Antwort zurücksenden, die besagt, dass wir Ihnen alle Gerichte senden werden.
Nun senden wir eine POST-Anforderung an localhost: 3000/Gerichte.
Hier können Sie die verschiedenen Methoden ändern, die Sie ausführen möchten.
Wenn Sie jedoch einen Beitrag senden,
möchten Sie einige Details in den Nachrichtentext einfügen,
da jemand erwartet, dass Sie Informationen im Nachrichtentext senden.
Klicken Sie also auf Körper hier und klicken Sie auf roh hier.
Und dann, für den Text, wählen Sie dies für JSON aus, so
verwenden Sie die Anwendung JSON.
Der Inhaltstyp wäre also Application/JSON in
der Anfrage, die Sie senden.
Da dies ein JSON-Objekt ist, also
in geschweiften Klammern, werde ich name sagen.
Ich werde einfach Test
und Beschreibung eingeben.
Einige Standardinformationen hier, so dass Sie sehen, dass dies eine JSON-Zeichenfolge ist, die
zwei Eigenschaften enthält, Name und Beschreibung und die entsprechenden Werte.
Also lassen Sie uns eine Post-Anfrage an den Server senden.
Wenn Sie eine Post-Anfrage an den Server senden, wie Sie sehen,
in der Antwort sagt es wird das Gericht hinzufügen: Testwoche Details: Beschreibung.
Wie Sie sehen können, werden die beiden Informationen aus dem Hauptteil
dieses JSON-angeforderten [UNAUDIBLE] extrahiert und dann in die Antwort aufgenommen.
Lassen Sie uns eine Put-Anfrage an Gerichte senden.
Wenn Sie eine Put-Anfrage an Gerichte senden, wie Sie sehen,
sagt es PUT-Operation nicht auf /Gerichte unterstützt, und schauen Sie sich den Status hier an.
Es steht Status: 403 Verboten.
Daher ist dieser Vorgang auf diesem Endpunkt nicht zulässig.
Lassen Sie uns eine DELETE-Operation auf dem Geschirr machen.
Wenn Sie die Operation auf dem Geschirr
löschen, werden Sie feststellen, dass alle Gerichte gelöscht werden.
Das ist also die Antwort, die Sie zurückbekommen.
Sie sehen also, dass der get post, put und
delete auf dem /dishs-Endpunkt funktioniert wie erwartet.
Nun lassen Sie uns ein bekommen auf Geschirr tun /23.
Also 23 hier ist der Parameter,
die ID des Gerichts, das Sie erhalten möchten.
Also, wenn Sie eine Anfrage senden, dass der Server antworten
wird, werden Details des Gerichts senden: 23 an Sie.
Sie sehen also, dass der Parameter aus der Anforderungsnachricht extrahiert und
dann in die Antwortnachricht aufgenommen wurde.
Machen wir einen Beitrag dazu.
Und wie Sie wissen, ist POST auf diesem Endpunkt nicht erlaubt, und
deshalb erhalten Sie einen Status 403 Verboten auf diesem Endpunkt.
Lassen Sie uns dazu eine PUT-Operation machen.
Für die PUT-Operation stellen Sie fest, dass der Körper das noch enthält.
Wenn Sie also in POST einen Wert eingeben,
wird dieser beibehalten und kann in anderen Anfragen enthalten sein, die Sie senden.
Also, wenn Sie eine PUT-Anfrage auf dem Endpunkt senden, Gerichte/23.
Sie bemerken also, dass es heißt, das Gericht zu aktualisieren, 23.
Aktualisiert das Gericht, den Namen des Gerichts,
mit Details, die Beschreibung des Gerichts hier.
Und dann, lassen Sie uns einen Löschvorgang auf diesem Endpunkt machen und
dann heißt es, d Löschen Gericht: 23.
Diese Endpunkte werden also alle unterstützt, wie Sie in diesem Beispiel sehen.
Also haben wir PUT, POSRT und Löschvorgänge sowohl auf dem Endpunkt /Gerichte als
auch auf dem Endpunkt /dishes/ dem Dish ID getan.
Sie sehen also, wie wir die REST-API-Endpunktunterstützung für
einen Satz von REST-API-Endpunkten implementiert haben.
Damit schließen wir den ersten Teil dieser Übung ab.
Also, hier haben wir gesehen, wie wir Express verwenden können, um den
REST-API-Endpunkt für die Gerichte zu konstruieren und zu implementieren.
Nun, dies ist ein guter Zeitpunkt für
Sie, ein Git-Commit mit der Nachricht Express Simple REST zu machen.
Nach dem Terminal werde ich starten die, Server.
Überprüfen Sie, ob drei der Elemente geändert wurden.
Also, git add, git commit -m,
Express Simple REST, Und überprüfen Sie den Satz.
Wie Sie sehen können, können Sie mit Express die Unterstützung für die REST-API einfach implementieren.
Und wie Sie aus dieser Liste sehen können, konstruieren Sie die
Methoden „get“, „PUT“, „POST“ und „delete“ für alle REST-API-Endpunkte wie folgt.
Stellen Sie sich nun vor, Sie haben tausend REST-API-Endpunkte,
und Sie müssen so etwas konstruieren.
Ihre Datei index.js wird mit so vielen verschiedenen REST-API-Endpunkten explodieren.
Und jeder wird mit seinen eigenen app.get,
app.put, app.delete und app.post behandelt.
Jetzt unterstützt Wxpress eine Möglichkeit, diese Arbeit in mehrere,
viele Express-Anwendungen zu unterteilen,
die dann zu einer allgemeinen Express-Anwendung kombiniert werden können.
Hier werden wir den Express Router nutzen,
um eine Mini-Express-Anwendung erstellen zu können.
Und dann
werden wir innerhalb einer Express Router-Datei den REST-API-Endpunkt für eine Gruppe von REST-API-Teilen unterstützen.
So zum Beispiel für Gerichte und Gerichte DishiD,
können sie alle in einer Datei unterstützt werden.
In ähnlicher Weise unterstützen Sie in der Zuweisung einen
REST-API-Endpunkt namens Promotions und Promotions/:PromoID.
Und dann unterstützen Sie eine andere REST-API und
für Führungskräfte und /Leader:LeaderID.
So kann jede dieser Gruppen separat implementiert werden, so viele
Express-Anwendungen mit Express Router.
Das ist also, was ich Ihnen für
den Endpunkt der Gerichte im nächsten Teil dieser Übung illustrieren werde.
Um das zu tun, erkennen wir, dass, wenn wir alle Dateien in einen einzigen Ordner legen,
Ihre Ordnerstruktur wieder chaotisch aussehen wird.
Also meine Präferenz ist es, hier einen Ordner namens Routen zu erstellen.
Und dieser Routenordner enthält alle Router, die ich
mit dem Express Router entwerfen werde.
Also im Routenordner werde ich eine neue Datei namens
dishRouter.js erstellen.
Und diese Datei dishRouter.js enthält die
Implementierung der Verarbeitung des REST-API-Endpunkts für
/Gerichte und /dishes:dishid-Endpunkte.
Wie nutzen wir jetzt Express Router?
Mal sehen, wie wir es benutzen können.
Jetzt kommt Express Router zusammen mit Express, so dass wir kein
weiteres Node-Modul installieren müssen.
Stattdessen können wir mit Express arbeiten, die wir bereits installiert haben. Geben
Sie dazu an dieser Eingabeaufforderung, const express
= require ('express'); ein.
Beachten Sie also, dass, da dies eine Mini-Anwendung ist,
wir immer noch Express benötigen, sogar in dieser dishRouter.js Datei.
Und aus Ihrem Wissen über Knotenmodule, sobald Sie eine neue Datei definieren,
wird das zu einem eigenen Knotenmodul.
Und dieses Node-Modul kann dann in index.js importiert werden.
So sehen Sie bereits die Verbindung zwischen, wie wir unsere
Anwendung in mehrere Dateien mit Node-Modulen umstrukturieren können.
Also werden wir setzen erfordern Express, dann sagen wir const
bodyParser require ('body-parser').
Also haben wir BodyParser bereits in den vorherigen Schritten der Übung installiert,
so dass wir das verwenden können.
Nun, um einen Express-Router zu verwenden,
lassen Sie mich const DishRouter = express.r deklarieren
und auf Express, es unterstützt diese Router-Schnittstelle, so werden wir einfach
sagen express.Router und dies wird DishRouter als Express-Router deklarieren.
Also in vielen Express-Anwendungen,
ein Einblick hier kann ich diesen DishRouter-verwandten Code hier behandeln.
Also, sobald ich dies einen in Express-Router deklariere, dann kann ich DishRouter sagen.
Und dann unterstützt es auf dem DishRouter eine Methode namens route method,
die einen Endpunkt als Parameter aufnehmen kann.
Also würde ich diesen Endpunkt einfach a /deklarieren.
Du fragst dich, sollte das nicht Geschirr sein?
Sie werden ziemlich bald sehen, dass ich diesen
Express-Router in meiner index.js Datei mounten muss.
Also in meiner Datei index.js werde ich diesen Express-Router am /dishs-Endpunkt einhängen.
Montage eines Express-Routers, wieder,
ein weiteres Konzept, das ich möchte, dass Sie verstehen.
Das werde ich Ihnen in kurzer Zeit noch einmal zeigen.
Nun bedeutet der DishRouter.route, dass
wir mit diesem Ansatz den Endpunkt an einem einzigen Ort deklarieren.
Dabei können Sie alle get, PUT, POST,
löschen Methoden bereits diesen Dish Router.
Nun, wenn Sie sich index.js ansehen, schauen Sie sich an, wie wir dies implifiziert haben.
Also haben wir app.all und dann /Gerichte, app.get/Gerichte und /dishes.
Nun, wenn Sie einen Fehler gemacht hatten, und ihre Anweisung app.post
/Gerichte stattdessen, wenn Sie einfach /dish eingeben, was passiert dann?
Der POST-Vorgang wird auf Gerichte nicht unterstützt,
wird aber auf /dish Endpoint unterstützt.
Um dieses Problem zu vermeiden, unterstützt der Express-Router diesen Routenendpunkt.
Auf dem Routenendpunkt
geben Sie einfach den Endpunkt an, an dem dieser Router arbeiten soll.
Und dann ist die Get-Put-Teile-Löschmethode, die einfach darin verkettet ist.
Es wird also eine Gruppe von Methodenimplementierungen alle zusammen sein.
Das ist der Grund, warum sie einen Express-Router verwenden.
Es kommt also mit ein paar sehr nützlichen
Unterstützung, um sicherzustellen, dass Ihre Implementierung korrekt ist.
Jetzt, da wir das als Geschirr-Router
tun werden, werde ich dieses Ding von hier entfernen.
Nun, das Gericht IDN Punkt, ich werde das
Ihnen als Übung in Ihrem ersten Auftrag überlassen, aber
der Endpunkt der Gerichte, ich werde das ausschneiden, bis zu allen.
Ich werde das aus index.js5 herausschneiden und
das hier in den DishRouter verschieben.
Jetzt, wenn ich das in den DishRouter verschiebe, brauche ich diese app.all nicht mehr.
Ich verkette das einfach in die Route, also werde ich einfach sagen .all und
dann brauche ich diese Endpunktdefinition dort nicht mehr.
Das war's. Also
wird es sagen .all und dann sagen wir req, res, als nächstes.
Und das alles funktioniert auf diesem speziellen Endpunkt, der
hier bereits angegeben wurde.
Nun, nicht nur das, wir können die restlichen Methoden verketten.
Deshalb sehen Sie, dass ich das Semikolon von hier entfernt habe.
Ich werde diese App löschen und dann darauf anhängen.
So wird auch in die Route geändert, und dann kann ich
diesen Teil entfernen, die Handhabung bleibt genau die gleiche wie zuvor.
So ähnlich werde ich entfernen die, App dort.
Und dann wieder, löschen Sie das aus dem Post.
Und das Gleiche.
Für setzen, Und
zum Löschen, Gleiches.
Beachten Sie also, dass es hier, hier oder
hier keine Semikolons gibt, aber das letzte, das Löschen, wird das Semikolon an Ort und Stelle haben.
Diese Gruppe ist also eine einzige Einheit, die durch
die Verwendung des Dish Router auf diesem bestimmten Router implementiert wird, und alle diese sind miteinander verkettet.
Und natürlich muss ich mit Löschen diesen Endpunkt entfernen.
Das ist es, sehen Sie, saubere Struktur des Codes hier.
So dass im Wesentlichen, endet die Implementierung des DishRouter, richtig,
denken Sie daran, dieser DishRouter ist in der Datei dishRouter.js definiert.
Jetzt muss ich dies von diesem Knotenmodul exportieren.
Also, um dies zu exportieren, werde ich hier nach unten gehen und
ich werde module.exports
sagen und sagen, DishRouter.
Das ist es.
Also jetzt exportiert mein DishRouter alles, was ich brauche.
Jetzt schauen Sie sich das an und sagen, was ist mit Colon Gericht.
Das wird Teil Ihres ersten Auftrags sein.
Nicht nur das, Sie implementieren
auch für zwei zusätzliche REST-API-Endpunkte, die Werbeaktionen und die Führungskräfte.
Dies zeigt Ihnen jedoch bereits die Struktur, wie eine
Express-Router-Implementierung der Res-API-Unterstützung aussieht.
Das ist also für Dishrouter.Route.
Und eine letzte Sache, bevor ich vergesse,
sollten wir dishrouter.Use (bodyparser.json ()) sagen.
Nachdem Sie nun die Implementierung des DishRouter abgeschlossen haben,
können wir nun in die Datei index.js gehen.
Da dieser DishRouter ein weiteres Knotenmodul ist, dennoch ein feines Knotenmodul.
Also müssen wir dies in unsere Anwendung importieren.
Also genau hier werde ich const
DishRouter importieren ist gleich erforderlich.
Jetzt, da dies ein dateibasiertes Knotenmodul ist,
werde ich sagen. /Routen/Geschirrspülmaschine.
Und wenn ich sie dort deklariert habe, dann komme ich hier runter in den Code.
Und genau dort sage ich app.use.
Und ich montiere den Router an einem Endpunkt.
Wie montiere ich den Router?
Der erste Parameter hier, werde ich Schrägschräggerichte angeben.
Und der zweite Parameter, geben Sie DishRouter.
Und das war's.
Was das bedeutet, ist, dass in meiner Express-Anwendung
jede Anfrage, die zu diesem Schrägstrich Gerichte Endpunkt kommt, von DishRouter behandelt wird,
und das wird durch den Code getan, der hier vorhanden ist,
weil wir DishRouter Route gesagt haben, und so bemerken, dass dies sagt Schrägstrich,
was bedeutet, dass diese wird am Schrägschüssel-Endpunkt montiert.
Deshalb wird alles, was durch Schrägschalen kommt, dazu geschickt und
wird dadurch behandelt.
Ein großer Hinweis für Sie, darüber nachzudenken, wie Sie
diesen Doppelpunkt-ID-Endpunkt implementieren würden.
Sie werden immer noch die gleiche Datei dishRouter.js verwenden
, um auch die Unterstützung für diesen /dishes/:dishid Endpunkt zu implementieren.
Das ist ein weiterer großer Hinweis für dich, okay.
Mit diesen Änderungen speichern wir die Änderungen, die wir
an unserer Anwendung vorgenommen haben, und starten Sie dann unseren Server neu und
werfen Sie einen Blick darauf, wie unser Server seine Arbeit machen wird.
Gehen Sie zum Terminal, lassen Sie mich diesen Server neu starten, indem Sie npm start eingeben.
Und sobald der Server läuft, werde ich zum Postboten gehen und
Anfragen von Postboten an diesen Server senden.
Gehen zum Postboten, jetzt weiß ich, dass mein Server nur
die Gerichte Endpunkt unterstützt, Ich habe die Schale ID Teil davon implementiert.
Also lassen Sie mich eine Get-Anfrage an lokale Gastgerichte senden und
Sie werden sehen, dass es genau wie zuvor funktioniert.
Nun, wenn Sie eine vorherige Anfrage in der Post gemacht haben, können Sie einfach darauf klicken und
dann die Anfrage erneut senden.
Put-Operation funktioniert nicht, Post-Operation, Funktioniert, wie Sie dort sehen.
Und dann lassen Sie uns den Löschvorgang auf dem Geschirr verursachen.
Und es sagt, alle Gerichte wie erwartet zu löschen.
Dies ist also die Implementierung der restlichen API-Unterstützung mit Express-Router.
Damit schließen wir die zweite Hälfte dieser Übung ab.
Dies ist ein guter Zeitpunkt für Sie, einen get Kommentar mit dem Message Express Router zu tun.
Nun, da wir diese Übung abgeschlossen haben, wo wir gesehen haben, wie Express
verwendet werden kann, um die Implementierung der Res API Endpunktunterstützung auf unserem Server zu unterstützen,
und auch die Verwendung von Express Router,
ist es Zeit, auf die erste Zuweisung zu gehen, die dieser Lektion folgt.
( MUSIK)