Der Express.js-Kurs – Modul 4: RESTful-APIs mit Express erstellen | Shivendra Raghuvanshi | Skillshare
Suchen

Playback-Geschwindigkeit


1.0x


  • 0.5x
  • 0.75x
  • 1x (normal)
  • 1.25x
  • 1.5x
  • 1.75x
  • 2x

Der Express.js-Kurs – Modul 4: RESTful-APIs mit Express erstellen

teacher avatar Shivendra Raghuvanshi, Lead Developer and Online Teacher

Schau dir diesen Kurs und Tausende anderer Kurse an

Erhalte unbegrenzten Zugang zu allen Kursen
Lerne von Branchenführern, Ikonen und erfahrenen Experten
Wähle aus einer Vielzahl von Themen, wie Illustration, Design, Fotografie, Animation und mehr

Schau dir diesen Kurs und Tausende anderer Kurse an

Erhalte unbegrenzten Zugang zu allen Kursen
Lerne von Branchenführern, Ikonen und erfahrenen Experten
Wähle aus einer Vielzahl von Themen, wie Illustration, Design, Fotografie, Animation und mehr

Einheiten dieses Kurses

    • 1.

      Kurseinführung

      2:10

    • 2.

      Übersicht über diesen Abschnitt

      0:56

    • 3.

      RESTful-Services mit Express.js

      6:24

    • 4.

      Express.js: Eine Einführung

      2:24

    • 5.

      Aufbau Ihres ersten Express.js-Servers

      5:41

    • 6.

      Effiziente Entwicklung mit Nodemon

      1:31

    • 7.

      Konfigurationen mit Umgebungsvariablen sichern

      3:15

    • 8.

      Dynamisches Routing mit Routenparametern

      3:38

    • 9.

      HTTP-GET-Anfragen beherrschen

      4:27

    • 10.

      POST-Anfragen effektiv bearbeiten

      3:41

    • 11.

      Endpunkte mit Postman testen

      2:21

    • 12.

      Absicherung Ihrer App mit Eingabevalidierung

      7:36

    • 13.

      Die Kunst der HTTP-PUT-Anfrage

      8:15

    • 14.

      DELETE-Anfragen richtig ausführen

      3:30

    • 15.

      Projekt: FareWheels App

      1:37

  • --
  • Anfänger-Niveau
  • Fortgeschrittenes Niveau
  • Fortgeschrittenes Niveau
  • Jedes Niveau

Von der Community generiert

Das Niveau wird anhand der mehrheitlichen Meinung der Teilnehmer:innen bestimmt, die diesen Kurs bewertet haben. Bis das Feedback von mindestens 5 Teilnehmer:innen eingegangen ist, wird die Empfehlung der Kursleiter:innen angezeigt.

4

Teilnehmer:innen

--

Projekt

Über diesen Kurs

Mit dem Modul 4 der „Express.js-Kurs“-Serie „RESTful-APIs mit Express erstellen“ kannst du deine Backend-Entwicklungsfähigkeiten auf die nächste Stufe bringen. In diesem Modul lernst du die Erstellung robuster und skalierbarer APIs mit Express.js, einem der beliebtesten Node.js-Frameworks, kennen. Ausgehend von den Grundlagen lernen Sie, wie Sie RESTful-Services entwerfen und implementieren, die moderne Webanwendungen unterstützen.

Mit praktischen Beispielen baust du deinen ersten Express-Server auf, sicherst deine App mit Umgebungsvariablen, meisterst dynamisches Routing und bearbeitest HTTP-Anfragen wie ein Profi. Außerdem lernst du wichtige Tools wie Nodemon für eine effiziente Entwicklung und Postman für das Testen deiner Endpunkte kennen.

Am Ende dieses Moduls hast du eine solide Grundlage in der RESTful-API-Entwicklung und Fähigkeiten wie Eingabevalidierung, HTTP-Anforderungsbearbeitung und Schutz deiner API vor gängigen Schwachstellen. Egal, ob du ein persönliches Projekt aufbaust oder an einer produktionsfähigen App arbeitest, dieses Modul vermittelt dir das Wissen, das du für den Erfolg brauchst.

Triff deine:n Kursleiter:in

Teacher Profile Image

Shivendra Raghuvanshi

Lead Developer and Online Teacher

Kursleiter:in
Level: All Levels

Kursbewertung

Erwartungen erfüllt?
    Voll und ganz!
  • 0%
  • Ja
  • 0%
  • Teils teils
  • 0%
  • Eher nicht
  • 0%

Warum lohnt sich eine Mitgliedschaft bei Skillshare?

Nimm an prämierten Skillshare Original-Kursen teil

Jeder Kurs setzt sich aus kurzen Einheiten und praktischen Übungsprojekten zusammen

Mit deiner Mitgliedschaft unterstützt du die Kursleiter:innen auf Skillshare

Lerne von überall aus

Ob auf dem Weg zur Arbeit, zur Uni oder im Flieger - streame oder lade Kurse herunter mit der Skillshare-App und lerne, wo auch immer du möchtest.

Transkripte

1. Kurseinführung: Willkommen zurück zu Modul vier des Express JS-Kurses, BILRSTful APIs Dieser Kurs ist eine Fortsetzung der Express JS-Kursreihe Mein Name ist Shan Ragunci und ich werde Sie auf dieser aufregenden Reise begleiten Mit meiner jahrelangen Erfahrung in der Entwicklung skalierbarer APIs und Echtzeitsysteme helfe ich Ihnen dabei, die Kunst der Erstellung von RESTful-APIs mit Express JS zu erlernen Erstellung von RESTful-APIs mit In diesem Modul werden wir alles behandeln. Sie müssen moderne und effiziente RESTful-APIs erstellen. Dazu gehören die Entwicklung von RESTful-Diensten und die Erstellung Ihres ersten Express S-Servers. Verwenden Sie Tools wie Normon, um die Entwicklung und Postboten zum Testen Ihrer ABI zu optimieren , Ihre App mit Umgebungsvariablen zu sichern und Eingaben zu validieren , um die Sicherheit zu Umgang mit SCTP-Methoden wie Get, Put und Delete für die Interaktion mit Daten und die Beherrschung von dynamischem Routing, um Ihre API flexibel und leistungsfähig zu gewährleisten, den Umgang mit SCTP-Methoden wie Get, Put und Delete für die Interaktion mit Daten und die Beherrschung von dynamischem Routing, um Ihre API flexibel und leistungsfähig zu machen. Dieser Kurs ist perfekt für Entwickler mit Sie möchten den nächsten Schritt in der API-Entwicklung machen? Wenn Sie schon immer Ihre eigenen Backend-Dienste erstellen wollten , zeigt Ihnen dieses Modul genau, wie das geht Am Ende dieses Moduls werden Sie über die Fähigkeiten verfügen, um RESTful-APIs zu entwerfen und zu erstellen, die sicher, skalierbar und produktionsbereit sind , skalierbar und produktionsbereit Dies sind unverzichtbare Fähigkeiten für Backend-Entwickler und ein entscheidender Schritt, um ein Full-Stack-Experte zu werden Schließlich hilft Ihnen unser praktisches Projekt dabei, eine voll funktionsfähige, RESTful-API von Grund auf neu zu erstellen RESTful-API von Du erstellst Routen für die Bearbeitung von Get-, Post-, Put- und Löschanfragen, sicherst deine App mit Umgebungsvariablen und validierst Eingaben, um die Zuverlässigkeit zu gewährleisten Ich freue mich sehr, Ihnen dabei zu helfen, leistungsstarke und skalierbare APIs mit Express JS zu erstellen . Lassen Sie uns eintauchen und loslegen. Wir sehen uns in der ersten Vorlesung. 2. Übersicht über diesen Abschnitt: I Also, früher in Abschnitt zwei, wo wir über das Knotenmodulsystem gesprochen haben, haben Sie von diesem STDP-Modul erfahren Wir verwenden dies, um einen Webserver zu erstellen, der auf Port 3.000 lauscht und auf Anfragen an diese Endpunkte reagiert Also die Root- oder API-Kurse. Dieser Ansatz ist zwar völlig in Ordnung, aber nicht ideal für die Erstellung einer komplexen Anwendung, da wir in einer großen komplexen Anwendung möglicherweise verschiedene Endpunkte haben und wir nicht all diese Anweisungen in dieser Funktion zusammenfassen möchten all diese Anweisungen in dieser Funktion In diesem Abschnitt werden wir uns also mit Express befassen, einem schnellen und einfachen Framework für die Erstellung von Webanwendungen Als Nächstes werden wir uns also mit den RESTful-Diensten befassen. 3. RESTful-Services mit Express.js: Beginnen wir diesen Abschnitt einer kurzen Einführung in die Rest-PL-Dienste, auch RestPL-APIs genannt Wenn Sie bereits wissen, worum es bei Rest geht, können Sie dieses Video gerne überspringen Deshalb habe ich Ihnen zu Beginn des Kurses die Client-Server-Architektur vorgestellt. Die meisten, wenn nicht sogar alle Anwendungen, die wir heutzutage verwenden, folgen also dieser Architektur. Die App selbst ist der Client oder der Frontend-Teil unter der Haube. Sie muss mit dem Server oder dem Backend kommunizieren , um die Daten abzurufen oder zu speichern. Diese Kommunikation erfolgt über das SDDV-Protokoll, das gleiche Protokoll, das unser Web unterstützt Auf dem Server stellen wir also eine Reihe von Diensten zur Verfügung, auf die über das sttBpTocol zugegriffen werden kann Der Client kann diese Dienste dann direkt aufrufen , indem Nun, hier kommt der Rest ins Spiel. Rest ist die Abkürzung für Representational State Transfer. Und ich weiß, dass es für Sie wahrscheinlich keinen Sinn ergibt, weil es von einem Doktoranden im Rahmen seiner Dissertation vorgestellt wurde einem Doktoranden im Rahmen seiner Dissertation Aber abgesehen von der Theorie ist RST im Grunde eine Konvention zum Aufbau dieser SDDB-Dienste Deshalb verwenden wir einfache SgtppToCol-Prinzipien um Unterstützung beim Erstellen, Lesen, Aktualisieren und Löschen von Daten bereitzustellen Lesen Wir bezeichnen diese Operationen insgesamt als Rohoperationen . Lassen Sie uns nun diese Konvention anhand eines echten PAL-Beispiels untersuchen anhand eines echten PAL-Beispiels Nehmen wir an, wir haben eine Firma namens Fair Wheels für die Vermietung von Autos. Wir haben eine Client-App, mit der wir eine Liste unserer Kunden auf dem Server verwalten. Wir sollten den Dienst an einem solchen Endpunkt verfügbar machen. Fairwheels.com hat also den Schrägstrich der API mit dem Schrägstrich CUSTOMers sodass der Kunde SGTBRQuest mit diesem Endpunkt senden kann, um mit unserem Service Nun ein paar Dinge über diesen Endpunkt, die Sie wissen müssen. Zuallererst kann die Adresse mit SGDP oder HTTPS beginnen. Das hängt von der Anwendung und ihren Anforderungen ab. Wenn Sie möchten, dass die Daten auf einem sicheren Kanal ausgetauscht werden, würden Sie GDPs verwenden Danach haben wir die Domain der Anwendung. Als nächstes haben wir API. Dies ist nicht verpflichtend, aber Sie sehen, dass sich viele Unternehmen an diese Konvention halten , um ihre RESTful-Dienste anzubieten Sie enthalten das Wort API irgendwo in der Adresse. Es kann nach der Domain stehen oder es kann sich um eine Subdomain wie apfairwals.com Es gibt keine feste Regel. Danach haben wir Kunden, was sich auf die Sammlung von Kunden in unserer Anwendung bezieht . In der übrigen Welt bezeichnen wir diesen Teil als Ressource. Wir können unsere Ressourcen wie Kunden, Autos und Mietwagen auf verschiedenen Endpunkten Das ist also unser Endpunkt, um mit den Kunden zu arbeiten. Alle Vorgänge rund um Kunden, wie z. B. das Erstellen eines Kunden oder das Aktualisieren eines Kunden würden durch Senden einer STDB-Anfrage an diesen Endpunkt erledigt einer STDB-Anfrage an diesen Endpunkt Die Art der GTB-Anfrage bestimmt die Art der Operation Jede SGDP-Anfrage hat also das, was wir ein Verb oder eine Methode nennen , die ihren Typ oder ihre Absicht bestimmt Hier sind die Standard-HTTP-Methoden. Wir haben Get zum Abrufen von Daten, Post zum Erstellen von Daten, Put zum Aktualisieren von Daten und Löschen zum Löschen von Daten. Lassen Sie uns nun jeden dieser Punkte anhand des Beispiels unserer Kunden untersuchen . Um die Liste aller Kunden zu erhalten, sollten wir eine STD-Abrufanfrage an diese Adresse senden. Beachten Sie den Pluralnamen Kunden. Hier wird eine Liste von Kunden angezeigt. Wenn wir also eine STP-GET-Anfrage an diesen Endpunkt senden, sollte uns unser Service so etwas senden Wir haben also eine Reihe von Kundenobjekten. Wenn wir einen einzelnen Kunden haben wollen, sollten wir die ID dieses Kunden in die Adresse aufnehmen. Dann würde unser Server mit einem Kundenobjekt wie diesem antworten . Um nun einen Kunden zu aktualisieren, sollten wir eine stdpPut-Anfrage an diesen Endpunkt senden Und beachten Sie, dass wir hier die ID des Kunden angeben, der aktualisiert werden soll Wir sollten aber auch das Kundenobjekt in den Text der Anfrage aufnehmen . Dies ist also eine vollständige Darstellung des Kundenobjekts mit aktualisierten Eigenschaften. Wir senden dies an den Server, und der Server aktualisiert den Kunden anhand dieser Werte mit einer bestimmten ID. Ähnlich wie beim Löschen eines Kunden sollten wir eine STDP-Löschanfrage an diesen Endpunkt senden Aber hier müssen wir das Kundenobjekt nicht in den Text der Anfrage aufnehmen , da wir zum Löschen eines Kunden lediglich eine ID benötigen Und schließlich müssen wir, um einen Kunden zu erstellen, eine stdpPostrQuest an diesen Endpunkt senden Nicht das hier, weil wir einen neuen Kunden hinzufügen. Wir haben es nicht mit einem bestimmten Kunden zu tun. Wir haben die ID nicht in der Adresse. Wir arbeiten mit einer Reihe von Kunden zusammen. Wir fügen dieser Sammlung also einen neuen Kunden hinzu, weshalb wir das Kundenobjekt in den Text der Anfrage aufnehmen sollten . Der Server ruft dieses Objekt und erstellt einen Kunden für uns. Das ist also die Restful-Konvention. Wir stellen unsere Ressourcen wie Kunden mit einer einfachen, aussagekräftigen Adresse zur Verfügung und unterstützen verschiedene Vorgänge rund um sie herum, wie z. B. die Erstellung oder Aktualisierung mit Standard-GTP-Methoden In diesem Abschnitt erfahren Sie , wie Sie mithilfe des Express-Frameworks den RESTful-Service für die Verwaltung der Kundenliste erstellen RESTful-Service für die Verwaltung der Kundenliste In diesem Abschnitt werden wir jedoch keine Datenbankarbeit durchführen , da dies zusätzliche Komplexität mit sich bringt Unser Fokus wird ausschließlich auf dem Aufbau von SDDP-Services liegen, und wir werden ein einfaches Array im Speicher verwenden , um die Liste unserer Kunden zu führen Später im Kurs werden wir uns mit der Verwendung einer Datenbank befassen. 4. Express.js: Eine Einführung: Also hier ist das Zitat, das wir in dem Abschnitt über Node Core geschrieben haben , wo ich Ihnen das STDP-Modul vorstelle Wir können also sehen, dass wir mit dem STDP-Modul einen Webserver erstellen können Hier haben wir eine Callback-Funktion, die zwei Parameter verwendet: Anfrage und Antwort Und mit diesem Anforderungsobjekt können wir die URL der eingehenden Anfrage überprüfen Damit können wir verschiedene Routen für unsere Anwendung definieren . Wenn Sie also beispielsweise eine Anfrage für API-Geldbörsen haben , werden wir dem Kunden auf diese Weise antworten Dieser Ansatz funktioniert zwar, ist aber nicht sehr wartungsfreundlich, da wir, wenn wir mehr Routen für unsere Anwendung definieren, mehr I-Blöcke in dieser Callback-Funktion hinzufügen müssen Dann kommt also ein Framework ins Spiel. Ein Framework gibt unserer Anwendung eine angemessene Struktur, sodass wir problemlos weitere Routen hinzufügen können , während unser Anwendungscode wartbar bleibt unser Anwendungscode wartbar Mittlerweile gibt es verschiedene Frameworks für die Erstellung von Webanwendungen und Webservern auf dem Knoten Das beliebteste ist Express. Wenn Sie also zu onpmjs.com gehen, suchen wir nach Express Die aktuelle Version ist also Version 4.18 0.2. Lassen Sie uns hier einen kurzen Blick darauf werfen. Schauen Sie sich hier auf der rechten Seite die Statistiken an. Es gab über 27 Millionen wöchentliche Downloads. Es ist ein sehr beliebtes Framework. Es ist auch sehr schnell, leicht und perfekt dokumentiert. jetzt, zurück im Terminal, Lassen Sie uns jetzt, zurück im Terminal, einen neuen Ordner für diesen Abschnitt erstellen. Also werde ich das Express Themo nennen. Gehen wir jetzt in diesen Ordner führen NPM darin mit Ja Jetzt haben wir also ein Paket jcnFle und endlich können wir Express installieren Wunderschön. In der nächsten Vorlesung werde ich Ihnen zeigen, wie Sie Ihren ersten Webserver mit Express erstellen . 5. Aufbau Ihres ersten Express.js-Servers: Ordnung. Lassen Sie uns jetzt im VS-Code eine neue Datei-App hinzufügen. In dieser Datei wollen wir also zuerst das Express-Modul laden. Also verwenden wir unsere benötigte Funktion und geben ihr den Namen unseres Moduls, der Express ist. Das gibt jetzt eine Funktion zurück. Das nennen wir Express. Okay. Jetzt müssen wir diese Funktion so aufrufen. Und wie Sie sehen können, gibt dies ein Objekt vom Typ Express zurück. Konventionell nennen wir dieses Objekt App. Also speichern wir das Ergebnis in einer App mit konstantem Aufruf. Das stellt also unsere Anwendung dar. Dieses App-Objekt hat nun eine Reihe nützlicher Methoden. Wir haben Methoden wie t, Post, Put und Delete. All diese Methoden entsprechen STDP-Verben oder STTP-Methoden , von denen ich Ihnen weiter oben in diesem Abschnitt erzählt habe Wenn Sie also eine DDP-Post-Anfrage an einen Endpunkt bearbeiten möchten , würden Sie App Dot Post verwenden In dieser Vorlesung wollen wir nur App Punkt G verwenden. Wir wollen ein paar Endpunkte implementieren, die auf eine TDP-Get-Anfrage antworten Diese Methode benötigt also zwei Argumente. Das erste Argument ist der Pfad oder die URL. Also hier werde ich einen Schrägstrich verwenden , um das Stammverzeichnis der Website darzustellen Jetzt ist das zweite Argument eine Callback-Funktion. Dies ist eine Funktion, die aufgerufen wird, wenn wir eine StdPgrQuest an diesen Endpunkt senden Okay, diese Callback-Funktion sollte also zwei Argumente haben zwei Argumente Das geht also zu einem Codeblock. Jetzt hat dieses Anforderungsobjekt eine Reihe nützlicher Eigenschaften, die uns Informationen über die eingehende Anfrage geben . Wenn wir mehr über all diese Eigenschaften erfahren möchten , schauen wir uns am besten die Express-Dokumentation an, da wir in diesem Kurs nur eine Handvoll dieser Eigenschaften verwenden werden. Gehen Sie also oben zu expresj.com und schauen Sie sich die API-Referenzversion vier an Jetzt können Sie hier das Anforderungsobjekt sehen, und darunter können Sie alle Eigenschaften sehen, die Ihnen zur Verfügung stehen Wir haben eine Basis-URL, wir haben einen Text zum Lesen des Hauptteils der Anfrage, Cookies, einen neuen Hostnamen , eine IP-Methode, die ursprüngliche URL , Parameter usw. Also zurück zu unserem Code: Wenn wir eine GDP-Anfrage zum Stammverzeichnis unserer Website erhalten , werden wir mit einer Hello World-Nachricht antworten. Antwortet auf CNN Hallo WW. So definieren wir nun eine Route. Wir geben den Pfad oder die URL und eine Callback-Funktion an, die auch als Route-Handler bezeichnet wird Jetzt müssen wir endlich einen bestimmten Port abhören. Also nennen wir App dot LICEN. Wir geben ihr eine Portnummer 3.000. Und optional können wir eine Funktion übergeben. Diese wird aufgerufen, wenn die Anwendung anfängt, den angegebenen Pot abzuhören. Also verwenden wir wieder Syntax der Pfeilfunktion , um etwas auf der Konsole anzuzeigen. Das Punktprotokoll der Konsole überwacht also Port 3.000. Jetzt zurück in der Terminalknoten-App dot js. Okay, wir hören auf Port 3.000 ab. Wechseln wir nun zu Cron und gehen zum lokalen Host-Port 3.000 Also hier ist unsere Hello World Botschaft. Lassen Sie uns nun eine andere Route definieren. Also werden wir die App noch einmal Dot Cat aufrufen. Nun, dieser wird Slash API Slash CoorSS sein. Auch hier übergeben wir die Funktion mit zwei Argumenten, nämlich Anfrage und Antwort, und das geht an Im realen Szenario wollen wir hier die Liste der Kurse aus der Datenbank abrufen und sie zurückgeben. Aber wie ich Ihnen bereits gesagt habe, konzentrieren wir uns in diesem Abschnitt ausschließlich auf den Aufbau dieser Endpunkte Wir werden keine Datenbankarbeit machen, also gebe ich einfach eine Reihe von Zahlen zurück Die Antwort, die gesendet wurde, gibt also eine Reihe von freien Zahlen weiter. In Zukunft können wir diese Zahlen durch tatsächliche Kursobjekte ersetzen . Jetzt, zurück im Terminal, müssen wir diesen Vorgang beenden und erneut starten. Drücken Sie also Strg und C. Okay, noch einmal, Notiz, App, um nachzujagen. Gehen wir jetzt zurück in Pro zu Slash APIs OSS. Schau, wir haben eine Reihe von kostenlosen Nummern. Wunderschön. Also darauf möchte ich, dass du hier achtest. In dieser Implementierung haben wir diese I-Blöcke nicht. Wir definieren neue Routen, indem wir die App dot get aufrufen. Mit dieser Struktur können wir, wenn unsere Anwendung wächst, einige dieser Routen in andere Dateien verschieben. Zum Beispiel können wir alle Routen, die sich auf Kurse beziehen, in eine separate Datei wie Courses Dot JS verschieben . Express gibt unserer Anwendung ein Grundgerüst, eine Struktur. 6. Effiziente Entwicklung mit Nodemon: Bisher haben Sie bemerkt, dass wir jedes Mal, wenn wir eine Änderung an diesem Code vornehmen, zum Terminal zurückkehren und diesen Vorgang beenden und erneut starten müssen diesen Vorgang beenden und erneut starten Das ist sehr mühsam. Also werde ich dir einen besseren Weg zeigen. Wir werden ein Node-Paket namens Nord Mode installieren, was die Abkürzung für Node Monitor ist. Also installiert NPM G im Terminal, weil wir es global installieren wollen, damit wir es überall ausführen können Und der Name des Pakets ist Nord Mode. Wie ich Ihnen bereits gesagt habe, müssen Sie Pseudo in den Vordergrund stellen, wenn Sie einen Mac verwenden und die Berechtigungen nicht richtig konfiguriert verwenden und die Ordnung? Kein Modus ist installiert. Anstatt unsere Anwendung mit dem Knoten auszuführen, verwenden wir damit den Knotenmodus. Okay? Jetzt können Sie sehen, dass Normon alle Dateien in diesem Ordner beobachtet, Dateien mit beliebigen Erweiterungen Also wenn du hierher zurückkommst und eine einfache Änderung vornimmst und dann die Datei speicherst Schauen Sie mal, im Terminal Normon aufgrund der Änderungen unsere Anwendung oder unseren Prozess neu gestartet aufgrund der Änderungen unsere Anwendung oder unseren Prozess Wir müssen das also nicht mehr manuell machen. jetzt wieder im Browser Wenn wir jetzt wieder im Browser eine Anfrage an das Stammverzeichnis der Website senden, unsere neue Nachricht hier angezeigt. 7. Konfigurationen mit Umgebungsvariablen sichern: Eine Sache, die wir in diesem Code verbessern müssen , ist dieser fest codierte Wert für den Port. Also haben wir 3.000 als willkürliche Zahl verwendet. Das mag zwar auf dem Entwicklungscomputer funktionieren, aber es ist unwahrscheinlich, dass es in einer Produktionsumgebung funktioniert. Denn wenn Sie diese Anwendung in einer Hostumgebung bereitstellen , wird der Port dynamisch von der Hostumgebung zugewiesen. Wir können uns also nicht darauf verlassen, dass 3.000 verfügbar sind. Der Weg, dies zu beheben, besteht darin eine Umgebungsvariable zu verwenden. Normalerweise haben wir in Hosting-Umgebungen für Knotenanwendungen diese Umgebungsvariable namens Port. Eine Umgebungsvariable ist im Grunde eine Variable, die Teil der Umgebung ist , in der ein Prozess ausgeführt wird. Ihr Wert wird außerhalb dieser Anwendung festgelegt. Ich werde dir gleich zeigen , wie das funktioniert. In dieser Anwendung müssen wir also den Wert dieser Sportumgebungsvariablen lesen . Und das tun wir, indem wir das Prozessobjekt verwenden. Wir haben dieses globale Objekt namens Prozess. Dieses Objekt hat eine Eigenschaft namens N, was die Abkürzung für Umgebungsvariablen ist. Und danach fügen wir den Namen unserer Umgebungsvariablen hinzu. In diesem Fall, also wenn das gesetzt ist, werden wir es verwenden. Andernfalls werden wir 3.000 verwenden. Jetzt können wir das Ergebnis in einer Konstante namens Port speichern. Okay, lass uns das löschen. Und schließlich müssen wir 3.000 durch Port ersetzen und auch unsere Nachricht entsprechend ändern. Also werde ich diesen einzelnen Code durch Backtick ersetzen. Wir können also ein Template-Literal verwenden. Und hier werden wir 3.000 durch einen dynamischen Wert ersetzen 3.000 durch einen dynamischen Wert Also fügen wir Dosin und Curryklammern hinzu und fügen dann unsere Jetzt, zurück im Terminal, lassen Sie uns diese Anwendung im Node-Modus ausführen Sie können also sehen, dass ich auf diesem Computer keine Umgebungsvariable namens Port habe. Aus diesem Grund wird 3.000 als Port für den Webserver verwendet. Jetzt werde ich eine Umgebungsvariable setzen. Also lasst uns diesen Prozess beenden. Auf dem Mac können wir eine Umgebungsvariable festlegen, indem wir den Exportbefehl ausführen. Wenn wir unter Windows arbeiten, sollten Sie Set in der Befehlszeile und Dollar und Doppelpunkt in Power Shell verwenden . Jetzt fügen wir in diesem Fall den Namen der Umgebungsvariablen Port hinzu und legen ihren Wert fest. Ich werde 5.000 verwenden. Jetzt haben wir also diese Umgebungsvariable namens Port mit einem Wert von 5.000. Damit führen wir diese Anwendung aus, Norman, Sie können sehen , dass wir jetzt Port 5.000 abhören. Dies ist also der richtige Weg, um Ihren Node-Anwendungen einen Port zuzuweisen. Sie sollten versuchen, den Wert einer Umgebungsvariablen namens Port zu lesen . Wenn es einen Wert gibt, sollten Sie diesen verwenden. Verwenden Sie andernfalls eine beliebige Zahl für Ihren Entwicklungscomputer. 8. Dynamisches Routing mit Routenparametern: Ordnung, derzeit haben wir eine Route, um die Liste der Kurse abzurufen. In dieser Vorlesung werde ich Ihnen nun zeigen, wie Sie eine Route erstellen , um einen einzelnen Kurs zu erhalten. Zu Beginn dieses Abschnitts, in dem ich über RESTful-Services gesprochen habe, Sie gelernt, dass wir, um einen einzigen Kurs zu erhalten, die ID des Kurses in die URL aufnehmen sollten Der Endpunkt sollte also wie dieser Slash-API-CSS-Endpunkt aussehen. Angenommen, eine ist die ID des Kurses. Schauen wir uns also an, wie wir eine solche Route implementieren können. Also App Dot Get, wir fügen den Pfad hinzu, der Slash-API-Slash-Kurse lautet Jetzt müssen wir hier einen Parameter definieren. Also fügen wir Spalte und ID hinzu. Diese ID ist der Name unseres Parameters. Hier könnten wir alles gebrauchen. Es muss kein Ausweis sein. Es könnte die Kurs-ID sein, aber ID ist kürzer und konventioneller. Jetzt fügen wir unsere Route-Handler-Funktion hinzu. Anfrage und Antwort gehen also an. Um diesen Parameter zu lesen, verwenden wir nun Anforderungspunktformen Punkt-ID. Lassen Sie uns das vorerst einfach an den Kunden senden. Also antworte Punkt N. Okay. Zurück im Browser. Gehen wir nun zur Slash-API COSSSO über. Sie können also sehen, dass wir den Wert dieses Parameters erfolgreich gelesen Es ist auch möglich, mehrere Parameter in einer Route zu haben . Stellen Sie sich zum Beispiel vor, Sie bauen einen Dienst für die Stromversorgung eines Blocks auf, sodass wir nach Ihrem Monat eine Route wie diese haben könnten Wir haben also zwei Parameter. Und damit können wir alle Beiträge für den angegebenen Monat und das angegebene Jahr erhalten. Jetzt können wir diese Parameter wie zuvor lesen. Fordern Sie also Punkt-PRMs pro Jahr oder Monat an. Lassen Sie mich Ihnen für diese Demo diesen Request Dot PremsObject zeigen . Gehen wir nun zu API Post 2023 und eins. Das ist also unser PAMs-Anforderungsobjekt. Wir haben zwei Eigenschaften und einen Monat, und sie werden basierend auf unseren Routenparametern benannt Mit dem Express können wir auch Abfragezeichenfolgenparameter abrufen. Dies sind Parameter, die wir der URL nach einem Fragezeichen hinzufügen. Zum Beispiel können wir alle Beiträge im Januar 2023 abrufen und sie nach ihrem Namen sortieren. Also fügen wir ein Fragezeichen hinzu und sortieren, indem wir es auf Namen setzen. Dies ist ein Abfragezeichenfolgenparameter. Wir verwenden Abfragezeichenfolgenparameter, um zusätzliche Daten für unsere Back-End-Dienste bereitzustellen . Wir verwenden also Routenparameter für wichtige oder erforderliche Werte, wohingegen wir Abfragezeichenfolgenparameter für alles verwenden , was optimal ist. Lassen Sie mich Ihnen nun zeigen, wie man Abfragezeichenfolgenparameter liest. Also zurück im VS-Code, anstatt Punkt-PRMs anzufordern, verwenden wir Request Dot Query, Save Back in Chrome, und das ist, was wir bekommen Abfrageparameter werden also in einem Objekt mit einer Reihe von Schlüssel-Wert-Paaren gespeichert einem Objekt mit einer Reihe von Schlüssel-Wert-Paaren 9. HTTP-GET-Anfragen beherrschen: Mir geht es gut. Lassen Sie uns nun einen neuen Endpunkt implementieren , um einen einzelnen Kurs vom Server abzurufen. Lassen Sie uns das zunächst wieder in Kurse ändern und den ID-Parameter hier hinzufügen. Okay, lassen Sie uns jetzt oben ein Array namens Courses definieren. Also konstante Kurse. Wir haben das auf ein Array eingestellt. Und in diesem Array werden wir drei Kursobjekte haben. Also sollte jedes Objekt ein paar Eigenschaften haben , eine ID und einen Namen. Und natürlich können wir mehr haben. Aber der Einfachheit halber werde ich mich hier nur auf zwei Eigenschaften beschränken. Okay, jetzt duplizieren wir diese Zeile und ändern die IDs sowie die Namen zwei und drei. Wir haben also zwei Endpunkte, einen für alle Kurse und den anderen für einen einzigen Kurs, richtig? Im ersten Fall werden wir unser Kursangebot zurückgeben. Okay? Nun, in der zweiten sollten wir eine Logik schreiben, um nach dem Kurs mit einer bestimmten ID zu suchen . Also lass mich das löschen. Zuerst gehen wir zu den Kursen Punkt FIE. Dies ist eine Methode , die für jedes Array in JavaScript verfügbar ist . Als Argument für diese Methode müssen wir eine Funktion übergeben. Diese Funktion wird verwendet, um einen Kurs zu finden , der einem bestimmten Kriterium entspricht. Wir verwenden also die Syntax der Pfeilfunktion. T geht zu, und hier schreiben wir eine Logik, die einen booleschen Wert zurückgibt Dieser boolesche Wert bestimmt, ob dieser Kurs der ist, nach dem wir suchen Die C-ID sollte also der Punkt-ID der Anfrage entsprechen. Diese Anforderung, dass Pam ID, jedoch eine Zeichenfolge zurückgibt. Damit dieser Vergleich also richtig funktioniert, müssen wir diese Zeichenfolge in eine Ganzzahl übergeben Also rufen wir pasen auf , eine der globalen Funktionen, die in Javascript verfügbar sind, und rufen dann das Ergebnis ab und speichern es in einer Konstante namens quote Jetzt können wir entweder let oder constant verwenden. Wir verwenden let, wenn Sie eine Variable definieren möchten , die wir später zurücksetzen können , und wir verwenden constant, wenn wir eine Konstante definieren möchten. In diesem Fall möchte ich den Kurs nicht später in dieser Funktion zurücksetzen, aber auch hier ist es völlig in Ordnung, let zu verwenden. Es ist nur eine persönliche Präferenz. Wir bekommen das Kursobjekt. Wenn dieser Kurs nun keinen Wert hat, mit anderen Worten, wenn wir keinen Kurs mit einer bestimmten ID finden, sollten wir konventionell eine Antwort mit dem TDP-Statuscode vier oder vier zurückgeben dem TDP-Statuscode vier oder vier Das bedeutet, dass das Objekt nicht gefunden wurde. Das ist also eine der Konventionen für erholsame ABIs. Wenn der Client nach einer Ressource fragt, diese Ressource aber nicht auf dem Server existiert, sollten wir eine Antwort mit dem Statuscode vier oder vier zurückgeben mit dem Statuscode vier oder vier also den Antwortstatus vier oder vier zurück, und optimalerweise können wir auch eine Nachricht an den Client senden. Der Kurs mit der angegebenen ID wurde also nicht gefunden. Okay? Nun, andernfalls, wenn wir eine Kurs-ID mit dieser ID haben, wir sie einfach an den Kunden zurück. Also antworte Punkt SN-Kurs. Lassen Sie uns das jetzt testen. B im Browser, lass uns zu Slash-API-Slash-Kursen mit Schrägstrich eins übergehen zu Slash-API-Slash-Kursen mit Schrägstrich Wir haben also einen Kurs mit der ID eins, und deshalb erhalten wir dieses SN-Objekt in der Antwort Okay, wenn ich es auf zehn ändere, bekommen wir diese Nachricht. Der Kurs mit der angegebenen ID wurde nicht gefunden. Und um sicherzustellen, dass der Statuscode dieser Antwort vier oder vier ist, können wir sie über die Entwicklertools öffnen. Klicken Sie also mit der rechten Maustaste auf Löschen und gehen Sie zur Inspektion. dann auf der Registerkarte Netzwerk sicher, dass Sie hier keinen Filter haben, wählen Sie alle aus und aktualisieren Sie dann die Seite, indem Sie Strg R unter Windows oder Befehl R auf Mac drücken . Also hier ist eine Anfrage, die wir an den Server senden. Sie können sehen, dass der Statuscode vier oder vier ist, was bedeutet, dass nicht gefunden wurde. 10. POST-Anfragen effektiv bearbeiten: Bisher haben wir zwei Routen erstellt, die auf sttpgrQuest antworten Und wir verwenden diese Routen, um alle Kurse sowie einen In dieser Vorlesung werde ich Ihnen beibringen, wie Sie sttpPostrQuest reagieren können Wir verwenden also eine TTP-Post-Anfrage, um einen neuen Kurs zu erstellen, also App Dot Post . Anstelle der G-Methode verwenden wir die Post-Methode Jetzt müssen wir, ähnlich wie bei der G-Methode, eine App angeben Das sollte also EBS-CSS mit Schrägstrich sein, weil wir mit einer Sammlung von Kursen posten werden Deshalb verwende ich hier einen Pluralnamen. Dann brauchen wir unseren Route-Handler, damit Anfrage und Antwort an Card Black gehen In diesem Route-Handler müssen wir das Kursobjekt lesen , das sich im Hauptteil der Anfrage befinden sollte. Verwenden Sie seine Eigenschaften, um ein neues Kursobjekt zu erstellen und dieses Kursobjekt dann zu unserem Kursarray hinzuzufügen. Lassen Sie uns ein neues Kursobjekt erstellen. Konstanter Kurs. Auch hier verwende ich eine Konstante, weil wir dieses Kursobjekt später nicht zurücksetzen Lassen Sie uns das also auf ein neues Objekt setzen. Da wir hier nicht mit einer Datenbank arbeiten, müssen wir nun manuell eine ID zuweisen. Also ID, und wir erhalten die Anzahl der Elemente in unserem Kursarray, also die Punktlänge der Kurse, und fügen einfach eins hinzu. Wenn wir in Zukunft mit einer Datenbank arbeiten, wird die ID von der Datenbank zugewiesen. Als nächstes folgt die Namenseigenschaft. Jetzt müssen wir das aus dem Hauptteil der Anfrage lesen. Fordern Sie also den Punktkörper und den Punktnamen an. Hier gehe ich also davon aus, dass wir im Hauptteil der Anfrage ein Objekt haben und dieses Objekt eine Namenseigenschaft hat. Damit diese Zeile funktioniert, müssen wir nun das Parsen von JSN-Objekten im Hauptteil der Anfrage aktivieren , da diese Funktion in Express standardmäßig nicht aktiviert ist Nachdem wir das App-Objekt erhalten haben, müssen wir oben app.us aufrufen und hier rufen wir Nun, das mag für Sie ein bisschen seltsam oder ungewohnt aussehen , aber machen Sie sich keine Später in diesem Abschnitt werden wir dies im Detail untersuchen Im Grunde fügen wir hier eine Middleware hinzu Wenn wir also die Express Jin-Methode aufrufen, diese Methode eine Middleware zurück Und dann rufen wir App auf, um diese Middleware in der Pipeline zur Anforderungsverarbeitung zu verwenden diese Middleware in Auch darauf werden wir später in diesem Abschnitt näher eingehen Also zurück zu unserem neuen Route-Handler, wir haben ein Kursobjekt Als Nächstes fügen wir es in unser Array ein, sodass Kurse den Kurs verschieben Und schließlich, wie üblich, sollten Sie, wenn wir ein Objekt an den Server senden, wenn der Server ein neues Objekt oder eine neue Ressource erstellt, wenn wir ein Objekt an den Server senden, wenn der Server ein neues Objekt oder eine neue Ressource erstellt, dieses Objekt im Hauptteil der Antwort zurückgeben . Also Antwort Punkt SN-Kurs. Der Grund dafür ist, dass wir dieses D auf dem Server zuweisen Wir müssen dieses Kursobjekt an den Client zurückgeben , da der Client wahrscheinlich die ID für dieses neue Objekt oder diese neue Ressource kennen muss dieses neue Objekt oder diese neue Ressource So behandeln wir also HTTP-Post-Anfragen. In der nächsten Vorlesung werde ich Ihnen zeigen, wie Sie diesen Endpunkt testen können. 11. Endpunkte mit Postman testen: Ordnung, um SDDP-Dienste aufzurufen, werden wir die Postman-API verwenden Also, wenn Sie Postman noch nicht benutzt haben, postman.com und laden Sie die App auf Ihr System herunter Gehen Sie also oben rechts zum Produkt und starten Sie den Download. Öffnen Sie nach dem Herunterladen diese Datei und installieren Sie sie wie folgt in Ihrem System. Sobald Sie fertig sind, können Sie Postman wie jede andere App in Ihrem System öffnen Postman wie jede andere App in Ihrem System Hier werden Sie möglicherweise aufgefordert, sich für ein Konto anzumelden, aber Sie müssen dies nicht tun Da wir lokal arbeiten, können wir ein Scratchpad verwenden, okay Jetzt können wir auf dieser Seite eine neue TTB-Anfrage erstellen. In diesem Drop-down-Menü stellen wir den Typ also auf eine Post-Anfrage ein Sie geben die URL hier ein. In diesem Fall ist das TDP, lokaler Host. Auf meinem Computer verwende ich Port 3.000, um diese Anwendung, APIs Courses, zu hosten diese Anwendung, APIs Courses, Jetzt müssen wir den Text dieser Anfrage aus dieser Liste auswählen, Pro und dann JSN Damit können wir ein JSN-Objekt in den Hauptteil der Anfrage einfügen ein JSN-Objekt in den Hauptteil der Anfrage Fügen wir hier also ein Objekt hinzu und geben ihm einen Namen Rape. Per Name haben wir das auf einen neuen Kurs gesetzt und dann endlich losgelegt. Sie können sehen, dass der Status dieser Anfrage 200 ist, was bedeutet, dass die Anfrage erfolgreich bearbeitet wurde. Und hier ist der Hauptteil der Antwort. Die ID ist also vier, weil wir jetzt vier Kurse in unserem Array haben, und das ist derselbe Name , den wir an den Server senden. So testen wir HTTP-Dienste mit Postman. In dieser Implementierung sind wir nun davon ausgegangen, dass sich im Hauptteil der Anfrage ein Objekt mit einer Namenseigenschaft befindet Was passiert, wenn der Client vergisst, diese Eigenschaft zu senden , oder einen ungültigen Namen sendet, vielleicht einen Namen , der zu kurz ist Hier kommt die Eingabevalidierung ins Spiel, und das ist das Thema der nächsten Vorlesung 12. Absicherung Ihrer App mit Eingabevalidierung: In diesem Vortrag werde ich Ihnen zeigen, wie Sie die Eingabevalidierung durchführen Aus Sicherheitsgründen sollten Sie also niemals dem vertrauen, was der Kunde Ihnen sendet. Sie sollten die Eingabe immer validieren. in diesem speziellen Beispiel Da wir es in diesem speziellen Beispiel mit einem einfachen Objekt zu tun haben, das nur eine Eigenschaft hat , nämlich den Namen, können wir eine Validierungslogik wie diese schreiben. Ich fordere also an, dass der Punktname nicht existiert oder Länge des Punktnamens für den Punktkörper weniger als drei beträgt Dann geben wir dem Client einen Fehler zurück. Die RESTful-Konvention besteht darin, eine Antwort mit dem Statuscode 400 zurückzugeben dem Statuscode 400 Das bedeutet PAD-Anfrage. Dazu rufen wir den Antwortstatus 400 und können dann eine Fehlermeldung senden. In diesem Fall können wir eine generische Fehlermeldung wie Name ist erforderlich schreiben eine generische Fehlermeldung wie und sollte mindestens drei Zeichen lang sein. In Ihrer Implementierung möchten Sie möglicherweise die Fehler unterscheiden. Wenn der Client beispielsweise die Eigenschaft name nicht gesendet hat, würden Sie vielleicht einfach mit der Angabe „Name is required“ antworten. Oder wenn der Name gesendet wurde, der Name aber nicht lang genug war, könnten Sie eine andere Fehlermeldung senden. Dann kehren wir endlich hierher zurück, weil wir nicht möchten, dass der Rest der Funktion ausgeführt wird. Das ist eine Grundidee. In der realen Anwendung ist es jedoch wahrscheinlicher, dass Sie mit einem komplexen Objekt arbeiten, etwas komplexeres als diesem Kursobjekt hier. Sie möchten keine komplexe Validierungslogik wie diese am Anfang Ihres Route-Handlers schreiben . Lassen Sie mich also ein Node-Paket vorstellen, das es Ihnen wirklich einfach macht , die Eingabe zu validieren. Also, wenn du bei Google mit I nach NPM Joy suchst, schau mal, hier ist der erste Link Hier kannst du also sehen, dass es wöchentlich über 8 Millionen Downloads gibt wöchentlich über 8 Millionen Downloads Es ist ein sehr beliebtes Paket. Lassen Sie mich Ihnen nun zeigen, wie Sie diese Validierungslogik durch Joy ersetzen können. Also zuerst, zurück im Terminal, lassen Sie uns Joy installieren. Zum Zeitpunkt der Aufnahme dieses Videos ist die neueste Version Version 17.9 0.2 Wenn Sie sicherstellen möchten, dass wir genau die gleiche Erfahrung wie das, was ich Ihnen in diesem Video zeigen werde, dann installieren Sie genau diese Version Also installiert NPM Hoy bei 17.9 0.2, okay? Jetzt, zurück im Code oben, müssen wir dieses Modul laden Also brauche Joy, erhalte das Ergebnis und speichere es in einer Konstante namens Joy mit J , denn was aus diesem Modul geschrieben wird, ist eine Klasse. Und wie ich Ihnen bereits gesagt habe, verwenden wir in JavaScript die Pascal-Namenskonvention, um unsere Klassen zu benennen Der erste Buchstabe jedes Wortes sollte also ein Großbuchstabe sein. sich außerdem bewährt, alle erforderlichen Pausen über diese Datei zu setzen Auf diese Weise können Sie leicht erkennen, welche Abhängigkeiten dieses Modul hat. Dieses Modul-App-Modul ist also von zwei Modulen abhängig. Einer ist Joy, der andere ist Express. Wir haben diese Joy-Klasse jetzt wieder in unserem Route-Handler. Jetzt müssen wir mit Joy zuerst ein Schema definieren. Ein Schema definiert die Form unserer Objekte. Welche Eigenschaften haben wir in diesem Objekt? Was ist der Typ der einzelnen Eigenschaften? Haben wir eine E-Mail? Haben wir eine Zeichenfolge? Was ist die minimale oder maximale Anzahl von Zeichen? Haben wir eine Zahl? In welchem Bereich sollte diese Zahl liegen? Das ist also ein Job von Schema. Also hier werde ich zuerst ein Schema definieren. Beim gesendeten Schema setzen wir es auf ein Objekt. Dies ist die Form unseres Kursobjekts. Hier wollen wir also eine Namenseigenschaft haben und setzen diese auf Joy Dot String. Also teilen wir Joy mit , dass es sich um eine Zeichenfolge handelt, die mindestens drei Zeichen lang sein sollte und dass sie erforderlich sein sollte. Es hat also eine sehr flüssige API. Auch hier können Sie sich die Dokumentation ansehen , um alle Methoden zu sehen , die Ihnen zur Verfügung stehen Also hier ist unser Schema. Jetzt rufen wir Schema Dot Validate und fordern es im Hauptteil an. Jetzt gibt diese Validierungsmethode ein Objekt zurück. Speichern wir das in einer Konstante namens result. Für diese Demo werde ich dieses Ergebnis auf der Konsole protokollieren. Sie uns das sagen, bevor wir weitermachen Lassen Sie uns das sagen, bevor wir weitermachen, gehen wir zurück zum Postboten Lassen Sie uns einen weiteren Kurs erstellen. Jetzt zurück im Terminal. Das ist also unser Ergebnisobjekt. Es hat zwei Eigenschaften, Fehler und Wert. Nur eine davon kann einen Wert haben. Da wir also in diesem Fall ein gültiges Kursobjekt senden, haben wir dieses Objekt hier als Wert der Werteigenschaft. Wenn Sie ein ungültiges Objekt senden, Wert Null und es wird ein Fehler gesetzt. Lass es mich dir zeigen. uns also die Postboten anschreiben, lassen Sie uns die Namenseigenschaft entfernen Jetzt zurück ins Terminal schicken. Okay, schau, hier ist das Ergebnisobjekt. Das ist die Fehlereigenschaft. Sie ist auf ein Objekt gesetzt, bei dem ein Validierungsfehler aufgetreten ist. Name ist erforderlich. Also zurück zu einem Route-Handler Anstatt dieser manuellen Validierungslogik können wir den Wert der Eigenschaft result thot error überprüfen Wenn also dieser Fehler auftritt, senden wir eine Antwort mit dem Statuscode 400 und im Hauptteil der Antwort Im Moment können wir einfach den Ergebnispunktfehler hinzufügen, okay? Und Sie benötigen dieses Konsolen-Punktprotokoll nicht mehr. Sag. Jetzt, zurück in Postman, werde ich noch einmal dieses leere Objekt verschicken Jetzt sieh dir die Antwort an. Also das bekommen wir. Ein Objekt mit diesen Eigenschaften. Originaldetails, bei denen es sich um eine Reihe von Fehlermeldungen handelt. Also hier ist die erste Nachricht. Name ist erforderlich. Jetzt ist dieses Objekt zu komplex, um die Art zu senden. Vielleicht möchtest du das vereinfachen. Zurück im Code besteht eine einfache Lösung darin, zum Details-Array zu wechseln, das erste Element abzurufen und dann auf die Nachrichteneigenschaft zuzugreifen. Anstatt also das erste Element zu verwenden, möchten Sie vielleicht auf alle Elemente in diesem Array zugreifen, ihre Nachrichteneigenschaft abrufen und sie verketten Das liegt ganz bei dir. Sparen Sie also noch einmal, lassen Sie uns eine ungültige Anfrage senden, und jetzt erhalten wir, dass der Name erforderlich ist. Wenn Sie zu unserer Anfrage gehen und die Eigenschaft name hinzufügen, sie aber an eine Zeichenfolge senden , die nur aus einem Zeichen besteht, erhalten wir jetzt einen anderen Fehler. Die Länge des Namens muss mindestens drei Zeichen lang sein. Sie können also sehen, dass Joy es wirklich einfach macht, die Eingabe zu validieren und dem Client die richtigen Fehlermeldungen zurückzugeben . 13. Die Kunst der HTTP-PUT-Anfrage: Ordnung. Nun wollen wir sehen, wie wir einen Kurs aktualisieren können. Lassen Sie uns eine neue Route-Handler-App hinzufügen. Wir verwenden die Put-Methode zum Aktualisieren von Ressourcen. Jetzt sollte der Teil Slash-API-Slash-Kurse lauten. Und hier brauchen wir einen Routenparameter weil wir es mit einem bestimmten Kurs zu tun haben Also ID, jetzt stehen Route-Handler-Funktion, Anfrage und Antwort auf „Quod Black Ordnung. Nun, hier ist die Logik, die wir implementieren müssen. Zuerst müssen wir diesen Kurs mit einer bestimmten ID nachschlagen. Also schlage den Kurs nach. Wenn der Kurs nicht existiert, wenn er nicht existiert, müssen wir vier oder vier zurückgeben. Das bedeutet, dass die Ressource nicht gefunden wurde. Andernfalls müssen wir den Kurs validieren und sicherstellen, dass er in einem guten Zustand ist. Falls gültig, müssen wir einen 400-Fehler zurückgeben, was eine Pat-Anfrage bedeutet. Wenn du herkommst, heißt das, dass alles in Ordnung ist. Also aktualisieren wir den Kurs und geben den aktualisierten Kurs an den Kunden zurück. Diese Logik müssen wir implementieren. Wir haben bereits Code , den wir hier wiederverwenden können. Ich werde nicht alles von Hand tippen. Ich werde etwas Code von unseren anderen Route-Handlern kopieren von unseren anderen Route-Handlern Zuerst wollen wir den Kurs nachschlagen und wenn er nicht existiert, wollen wir einen Fehler von vier oder vier zurückgeben Dafür gehe ich zu diesem anderen Route-Handler, wo wir einen einzigen Kurs bekommen. Das ist eine Logik, an der wir interessiert sind. Wir suchen nach dem Kurs und wenn er nicht existiert, geben wir einen Fehler von vier oder vier zurück. Also kopiere diese beiden Zeilen, wir sind mit dem ersten Teil fertig. Im zweiten Teil dreht sich alles um Validierung. Dafür gehe ich zu unserem Post-Endpunkt. Hier müssen wir also das Schema sowie diese Zeile zur Validierung des Anforderungstexts mit Joy kopieren sowie diese Zeile zur Validierung des Anforderungstexts mit und den Code, der 400 zurückgibt, wenn er ungültig ist Bei diesem Ansatz gibt es jedoch ein Problem. Das Problem ist, dass wir in diesem Fall ein sehr einfaches Schema haben. Was ist, wenn Sie es mit einem komplexen Objekt mit einer ganzen Reihe von Eigenschaften zu tun haben? Dann würde unsere Validierungslogik auf verschiedene Routen und Ladungen dupliziert Also lassen Sie uns das Boot vorerst einfach kopieren und dann kommen wir zurück und überarbeiten es, um es besser zu machen Also kopiere diese Zeilen und füge sie hier ein. Wir validieren also, und wenn Sie einen Fehler im Ergebnis haben, wir diesen 400-Fehler zurück Das ist also unser zweiter Teil. Wir haben das Schema, wir validieren es, und wenn wir einen Fehler haben, geben wir den 400-Fehler zurück. Wir sind mit dem zweiten Teil fertig. Jetzt der dritte Teil. An dieser Stelle haben wir also ein Kursobjekt. Wir können seine Eigenschaften aktualisieren, also natürlich Punkt nem, wir stellen das so ein, dass Punkt P Punkt angefordert wird. Und wenn wir andere Eigenschaften haben, legen wir sie natürlich auch hier fest. Wir sind damit fertig, den Kurs zu aktualisieren, und schließlich müssen wir den aktualisierten Kurs an den Client zurückgeben. Antwort Punkt CN-Kurs. So gehen wir mit einer StdbPutrQuest um. Nun habe ich Ihnen gesagt, dass wir diese Validierungslogik dupliziert haben Ich werde diese wenigen Zeilen in eine separate Funktion extrahieren , die wir sowohl in diesem Route-Handler für die Bearbeitung einer sttpPutRquest als auch in der anderen, die wir in der letzten Lektion zum Erstellen eines Kurses geschrieben haben, wiederverwenden können sowohl in diesem Route-Handler für die Bearbeitung einer sttpPutRquest als auch in der anderen, die wir in der letzten Lektion zum Erstellen eines Kurses geschrieben haben, wiederverwenden für die Bearbeitung einer sttpPutRquest als auch in der anderen, die wir in der letzten Lektion zum Erstellen eines Kurses geschrieben haben letzten Lektion Lassen Sie uns nun hier eine Funktion definieren und nennen Wir geben ihr ein Kursobjekt. In dieser Funktion sollten wir nun sowohl das Schema als auch diese Zeile zur Validierung des Kurses haben als auch diese Zeile zur Validierung des Kurses Also schneide diese paar Zeilen aus und füge sie hier ein. Anstatt den Hauptteil der Anfrage zu validieren, werden wir nun das Argument validieren , das an diese Methode übergeben wurde, also das Kursobjekt Schließlich können wir dieses Ergebnis einfach an den Aufruf zurückgeben. Es ist nicht notwendig, eine Konstante zu definieren. Mit dieser neuen Implementierung haben wir also die gesamte Validierungslogik an einem Ort. Jetzt können wir das wiederverwenden. Also hier ist unsere Put-Methode. Wir definieren ein konstantes Aufrufergebnis und stellen es so ein, dass es den Kurs validiert. Und als Argument übergeben wir den Hauptteil der Anfrage. Jetzt können wir diesen Code etwas sauberer und kürzer machen etwas sauberer und kürzer indem wir die Funktion zur Objektdestrukturierung in modernem Javascript verwenden Funktion zur Objektdestrukturierung in modernem Javascript Schauen Sie, hier erhalten wir dieses Ergebnisobjekt und greifen an zwei verschiedenen Stellen auf die Ergebnispunktfehlereigenschaft zwei verschiedenen Stellen Da wir nur an dieser Fehlereigenschaft interessiert sind, können wir sie mithilfe der Objektstrukturierung erreichen. Lassen Sie mich also diese Zeile duplizieren und Ihnen zeigen, wie die Destrukturierung von Objekten funktioniert Bei der Objektstrukturierung beim Deklarieren einer Variablen oder Konstanten Culebrass hinzu und dann fügen wir hier die Eigenschaft des In diesem Fall hat das Zielobjekt, das von unserer gültigen Kursmethode zurückgegeben wird, also hat das Zielobjekt, das von unserer gültigen Kursmethode zwei Eigenschaften: Fehler und Wert In diesem Fall wollen wir nur die Fehlereigenschaft. Also haben wir das zwischen die Cul-Zahnspange gelegt. Das ist also gleichbedeutend mit einem Punktfehler beim Ergebnis. Wir verwenden diese Notation. Okay. müssen wir den Ergebnisfehler nicht an verschiedenen Stellen wiederholen . Wir können einfach Fehler verwenden, okay? Das ist also eine Destrukturierung von Objekten. Jetzt brauchen wir diese erste Zeile nicht mehr. Und schließlich, bevor wir diesen Vortrag beenden, müssen wir noch eine Änderung an diesem Code vornehmen. Wir müssen also diese neue Methode zur Validierung eines Kurses im Route-Handler verwenden , um unsere STTP-Post-Anfrage Also kopiere, das ist unser Handler für die Erstellung eines neuen Kurses. Wir müssen das Schema hier also nicht verwenden. Wir verlagern diese ganze Logik in unsere Funktion „Kurs validieren“. Ich werde das löschen und den Code einfügen , den wir von der anderen Methode kopiert haben Also rufen wir den Validate-Kurs auf, verwenden die Syntax zur Objektstrukturierung und wenn Sie einen Fehler haben, geben wir die 400-Antwort an den Client zurück . Lassen Sie uns nun endlich unseren neuen Endpunkt für die Aktualisierung eines Kurses testen . Jetzt, zurück in Postman, müssen wir den Typ dieser STDP-Anfrage ändern, die URL ändern und eine gültige Kurs-ID wie eine hinzufügen Hier haben wir ein gültiges Kursobjekt , dessen Name auf neuer Kurs gesetzt Wir erhalten also eine 200-Antwort, die erfolgreich ist, und hier ist der aktualisierte Wenn Sie also einen neuen Tab öffnen und eine TPG-Anfrage an lokalisierte API-Kurse senden , sollten Sie die Liste unserer Kurse sehen Erster Kurs, sein Name wird aktualisiert. Perfekt. Lassen Sie uns nun die anderen Szenarien testen. Was ist, wenn wir eine ungültige ID senden? Wir zehn. Der Kurs mit der angegebenen ID wurde nicht gefunden, und Sie können sehen, dass die Antwort vier oder vier lautet , was bedeutet, dass nicht gefunden wurde. Was ist abschließend, wenn wir eine gültige Kurs-ID, aber ein ungültiges Kursobjekt senden ? Also werde ich die Namenseigenschaft S entfernen, sodass wir sehen können, dass wir eine fehlerhafte Anfrage oder einen 400-Fehler haben. Und hier ist die Fehlermeldung. Name ist erforderlich. Als Nächstes zeige ich Ihnen, wie Sie mit SDDP-Löschanfragen umgehen 14. DELETE-Anfragen richtig ausführen: Und von allen CRD-Operationen, die wir implementiert haben, haben wir erstellt, gelesen und aktualisiert In diesem Vortrag werde ich Ihnen zeigen, wie Sie auf HTDP-Löschanfrage antworten Es ist sehr einfach und ähnelt dem, was wir bisher gemacht haben. Also hier ist unser App-Objekt. Wir nennen das Löschmethode. Geben Sie ihr einen Pfad, der Slash-API-Kurse lautet. Und natürlich benötigen wir einen Parameter, weil wir mit einem bestimmten Kurs arbeiten Dann geht unsere Route-Handler-Anfrage und Antwort an den Cord-Block. Hier müssen wir zuerst den Kurs nachschlagen, einen Kurs mit einer bestimmten ID. Wenn er nicht existiert, müssen wir vier oder vier zurückgeben. Andernfalls werden wir es löschen. Und laut Konvention geben Sie denselben Kurs zurück, den Kurs, der gelöscht wurde. Also werde ich mir wieder Code von anderen Route-Handlern ausleihen Code von anderen Route-Handlern ausleihen um den Kurs nachzuschlagen und einen Vier-oh-Vier-Fehler zurückzugeben Lassen Sie mich zu unserem Route-Handler für die STP-Put-Anfrage zurückkehren für die STP-Put-Anfrage Diese ersten beiden Zeilen dienen also dazu, den Kurs nachzuschlagen und einen Vier-oh-Vier-Fehler zurückzugeben Also kopiere diese beiden Zeilen hierher zurück . Das ist unser erster Teil. Um nun einen Kurs zu löschen, müssen wir zunächst den Index dieses Kurses in unserem Kursarray finden . Also natürlich den Punktindex der Kurse, wir rufen den Index ab, speichern ihn in einer Konstante und dann können wir mit der Splice-Methode ein Objekt aus unserem Kursarray entfernen Also Courses dot Splice, wir gehen zu diesem Index und entfernen ein Objekt Das ist also ein Teil zum Löschen. Und schließlich müssen wir die Antwort auf die Behauptung zurückgeben. Also Antwort, die dieses Kursobjekt gesendet hat. Lassen Sie uns das jetzt testen. Tasche in Postman, ändern wir, setzen wir auf Löschen. Zuerst möchte ich eine ungültige Kurs-ID wie zehn s schicken , sodass wir die Fehlermeldung „ Vier oder Vier“ erhalten, mit dieser Nachricht nicht gefunden wurde Perfekt. Lassen Sie uns jetzt die erste Geldbörse löschen Kurs mit ID eins. Dann erhalten wir dasselbe Kursobjekt in der Antwort. Und wenn wir zu unserem zweiten Tab gehen wo wir die Liste unserer Kurse haben, senden wir diese noch einmal. Okay, hör mal, wir haben unsere erste Geldbörse nicht mehr. Wir haben nur Kurse mit Ausweis zwei und drei. Ordnung. Bevor wir weitermachen, schauen Sie sich den Handler an, um auf eine Put-Anfrage zu antworten. Wenn ein Fehler auftritt, besteht eine kürzere Möglichkeit, denselben Code zu schreiben, darin, die Rückgabe hier einzufügen, und dann benötigen wir keinen Codeblock. Wir können alles in eine Zeile schreiben. Schauen wir uns nun endlich den Handler für GDP-Post-Requests an. Hier ist er. Auch hier werde ich dieselbe Technik verwenden, um diesen Code zu bereinigen. Wenn wir also einen Fehler haben, kehren wir einfach zurück und beseitigen das zusätzliche Rauschen in diesem Code. Das ist viel besser. 15. Projekt: FareWheels App: Ordnung. Jetzt ist es Zeit für eine Übung. Ab diesem Vortrag werden wir also damit beginnen, die Backend-Services für unsere Fair Wheels-Anwendung zu entwickeln die Backend-Services für unsere Fair Wheels-Anwendung Wie ich Ihnen bereits sagte, ist Fair Wheels ein imaginärer Service zur Vermietung Während dieses Kurses werden wir also Stück für Stück das Backend von Fair Wheels aufbauen Stück das Backend von Fair Wheels Unsere erste Aufgabe besteht darin, einen Dienst für die Verwaltung der Liste der Autofirmen oder -hersteller einzurichten. Jedes Auto hat also einen Hersteller wie General Motors, Tesla, Ord usw. Wir sollten einen Endpunkt haben, um die Liste aller Unternehmen abzurufen, weil wir vielleicht irgendwo in unserer Client-Anwendung eine Drop-down-Liste haben der der Benutzer ein Unternehmen auswählen kann. Wir brauchen also einen Endpunkt, um alle Unternehmen zu finden. Wir sollten auch in der Lage sein, ein neues Unternehmen hinzuzufügen sowie ein bestehendes zu aktualisieren oder zu löschen. Bevor wir also weitermachen, möchte ich, dass Sie das, was Sie bisher gelernt haben , in die Praxis umsetzen, und das wird auch Ihre Aufgabe sein. Also, auch wenn Sie ein erfahrener Entwickler sind, sollten nicht nein sagen oder auch nur eine Ausrede vorbringen. Ich weiß, wie das geht. Das ist so einfach. Ich weiß, dass es einfach ist, aber was jetzt wichtig ist, dass ich möchte, dass du dich an diese Syntax gewöhnst. Machen Sie also weiter, starten Sie ein neues Projekt von Grund auf neu, alles trägt Räder und erstellen Sie diesen TDP-Service für die Verwaltung der Firmenliste