Transkripte
1. Einführung: Willkommen bei NodeJS Web API Kurs. In diesem Kurs werden Sie lernen, indem Sie tun. Wir stellen Ihnen
die praktischste Erfahrung vor , die Sie benötigen, um Web-APIs zu erstellen. Denn heutzutage, wenn Sie eine Erfahrung sammeln wollen, müssen
Sie es nicht nur tun, eine Dokumentation zu lesen oder einen theoretischen Kurs zu folgen. diesem Grund erstellen wir diesen Kurs, der e-Sharp Web API sein wird. Wir werden alle Informationen abdecken, die benötigt werden, um eine Webshop-API zu erstellen. Api bedeutet Anwendungsprogrammierschnittstelle, oder mit anderen Worten, die Schnittstelle, die mir das bringt ,
uh, von der Datenbank zur Benutzeroberfläche. Und es wird sich in einem Webserver befinden, auf dem unsere NodeJS-Anwendung gehostet wird. Jede API ist sicher. So werden wir in diesem Kurs lernen, wie Sie sich bei diesen APIs authentifizieren und sie sichern. Wir erstellen alle APIs, die für den E-Shop benötigt werden, wie das Produkt und Kategorien und Benutzer und Benutzer Logins und Authentifizierung und Benutzerregistrierung. Und natürlich, die Bestellungen, die die Benutzer aufgeben, werden wir auch den Datei-Upload und die mehrfachen Datei-Uploads nicht vergessen. Da wir das für unsere Produktbilder und Produktgalerie benötigen, werden
wir das beste Werkzeug für die Erstellung unserer API verwenden. Und als Back-End-Entwickler werden
Sie sehen, wie Sie Ihre APIs testen, da einige Tools uns
volle Funktionalität bieten können , ohne vom Front-End abhängig zu sein und darauf zu warten, dass es erledigt wird. Wir werden auch die richtigen Editoren und die besten Erweiterungen verwenden, um unsere Produktivität zu beschleunigen. Und nicht nur das, Sie werden auch sehen, wie dieser Kurs interaktiv ist. Daher werden wir Sie bitten, eine Aufgabe zu lösen und wir werden sie für Sie überprüfen. Ich hoffe, Sie werden diesen Kurs genießen und ich freue mich darauf, uns alle
gemeinsam daran zu arbeiten , die beste API für einen E-Shop zu erstellen.
2. Übersicht zu unserer RESTful API: Werfen wir einen Blick auf unsere RESTful API, um zu sehen wie Daten zwischen dem Client und dem Server ausgetauscht werden. Was ist die Architektur der RESTful API? Wir haben den Client und wir haben einen Server, und sie tauschen Daten über HTTP-Protokoll aus. Dies ist das grundlegende Konzept der RESTful API. Es gibt auch Operationen zum Erstellen von Daten, Lesen von Daten, Aktualisieren und Löschen von Daten. Seine Operationen können über das HTTP-Protokoll durchgeführt werden. Es gibt spezifische Methoden des HTTP-Protokolls, die diese Operationen ausführen, die wir zuerst Operationen aufrufen, was ist der Unterschied zwischen RESTful API und der Front-End-Route? Die RESTful-API bringt Daten. Die Front-End-Dürre zeigt die Daten oder Rendern einer bestimmten Seite. Wenn Sie Ihren Browser öffnen und RESTful API-Link setzen, wenn Sie Zugriff auf diese Daten haben, dann erhalten Sie eine Zeichenfolge, die aus JSON- oder XML-Datei besteht. Http-Protokoll ist in der Lage, eine Seite mit HTML CSS zu rendern und bringen Sie Ihre Daten. So HTTP-Methoden im Allgemeinen sind sie GET, post, PUT und delete, die die groben Operationen sind. Aber in HTTP-Methoden werden
sie so genannt. Also schicke ich eine Anfrage an die Datenbank oder an das Back-End im Allgemeinen, um einige Daten durch die Rest-API zu erhalten. Zum Beispiel, wenn Sie eine Produktliste über die API erhalten, wird
es mir Array von Liste von Produkten geben. Wenn Sie ein einzelnes Produkt erhalten, Umgehung der ID dieses Produkts, wird
es mir JSON-Datei mit allen Details des Produkts geben. Wenn ich ein Produkt aktualisieren möchte, sende
ich eine PUT-Anfrage mit der Idee für das Produkt und füge auch die neuen Daten hinzu. Und die Antwort wird das gleiche Produkt sein, aber mit anderen Daten. Und das Löschen eines Produkts wird nur die ID des Produkts mit Löschanforderung übergeben. Erstellen eines Produkts, müssen Sie ein neues Produkt zu posten. Also verwende ich die Hauptroute der API
der Produkte und dann übergebe ich neue Daten, die Daten, die zum Beispiel Name Ihres Produkts und des Bildes, und das sind Teiche, eine neue ID mit den neuen Namen des Produkts und natürlich das Bild. Dies sind unsere API-Anfragen, um
die Daten zu erhalten oder Daten auf dem Server zu veröffentlichen oder zu löschen oder zu aktualisieren. Und ich benutze api Slash v1, was die Version eins bedeutet. Wenn Sie also Ihre API in Zukunft aktualisieren möchten, fügen
Sie eine neue Version hinzu. So können sie Benutzer immer noch die älteren Versionen Ihrer API verwenden. Das Gleiche für Bestellungen und die Benutzer. In diesem Fall haben
Sie die gleiche Sequenz, aber Sie müssen nur Ihre Daten planen, oder? Das Erstellen eines Webservers mit NodeJS ist sehr einfach. Lassen Sie uns das in der nächsten Vorlesung sehen.
3. Nodejs installieren: Um mit der Entwicklung zu beginnen, brauchen wir immer das Paketmanagement. Die Paketverwaltung kommt mit NodeJS-Anwendung. Also, um es zu installieren, spielt es einfach in Google NodeJS und gehen Sie zu Download. Und Sie werden den Download für alle Betriebssysteme sehen. Zum Beispiel habe ich hier für Windows und auch für Mac OS. Es gibt zwei Typen wie LTS, die für die meisten Benutzer empfohlen wird, und die aktuelle, die die neuesten Funktionen sind. Besser, immer eine stabile Version zu erhalten, die für die meisten Benutzer empfohlen wird. Hier können Sie Ihre Installation basierend auf Ihrem Betriebssystem auswählen. Und es wird einfach eine Anwendung sein, wie jede Anwendung, die Sie installieren können. Danach können Sie diese Anwendung herunterladen und ausführen. Und es wird wie jede normale Anwendungsinstallation sein. Also, um sicher zu sein, danach beenden Sie alle diese Schritte. Sie müssen einige MPM-Kommentare ausführen. Um MPM-Befehle auszuführen, können
wir Visual Studio Code verwenden. Nachdem Sie den Visual Studio-Code geöffnet haben, sehen
Sie hier die neuesten Projekte, die Sie haben. Aber zum Beispiel müssen wir das Terminal von Visual Studio-Code öffnen. Also werde ich hier gehen und Control und J. sagen und dann werde ich das Terminal öffnen lassen. Und im Terminal können wir
zum Beispiel einen Kommentar NodeJS platzieren. So können wir sagen, zum Beispiel, NPM-Version. Und wir würden das vollständige Detail Jungfrau über die installierte Node.js bekommen. Danach werden wir in der Lage sein, NodeJS-Paketverwaltung zu verwenden, wo es viele Bibliotheken gibt, die wir in unserer Anwendung und unseren Entwicklungen verwenden können.
4. Postman installieren: Wenn wir APIs erstellen, müssen wir sie testen. Sie können Ihre APIs mit einer Front-End-Anwendung wie React oder Angular oder Vue js testen. Aber wir gehen in diesem Kurs, um zuerst mit dem Backend zu beginnen. Der beste Weg, dies zu tun und die APIs zu testen, ist die Installation eines Tools namens Postman. Gehen wir zu Google. Sie gehen zum Download Postman. Und hier finden Sie basierend auf Ihrem Betriebssystem. Also hier werden Sie wählen, laden Sie die Anwendung. Und nachdem es heruntergeladen wurde, wird
es ein normales Setup wie jede Anwendung sein. Nach dem Öffnen der heruntergeladenen Datei erhalten
Sie eine Benachrichtigung, wenn Sie Mac OS verwenden. Und es wird Sie auffordern, diese Anwendung in den Anwendungsordner zu verschieben. Und danach sehen Sie, dass sich diese Anwendung in Ihrem Anwendungsordner befindet. Dasselbe für Windows. Es ist normal, wie jede kleine Anwendung zu installieren. Nach dem Öffnen der Anwendung können
Sie APIs testen. Lasst uns eins testen. Wenn Sie zu Google gehen und JSON-Platzhalter eingeben, sehen
Sie, dass der erste Link einige gefälschte APIs ist. So können Sie eine GET-Anfragen testen oder Anfragen posten. Also lasst uns das mal probieren. Es steht hier. Als GET-Anfrage gehe
ich zum Postboten und öffne dann eine neue Registerkarte mit der GET-Anfrage und platziere den Link, den ich vom JSON-Platzhalter kopiert habe, und drücke Senden, ich bekomme eine Antwort. Diese Antwort kommt als JSON. Und auf die gleiche Weise werden
wir unsere APIs erstellen.
5. MongoDB Atlas konfigurieren: Für unseren E-Shop benötigen wir eine Datenbank. Und die Datenbank, wir brauchen keine Software zu installieren. Wir werden MongoDB, Atlas verwenden. Mongodb bietet jetzt einen Online-Datenbankspeicher an, was bedeutet, dass die Datenbank bereits in der Cloud ist. Was wir tun müssen, nur um auf die URL zu gehen, die ich mit dieser Vorlesung angehängt und erstellen Sie ein Konto hier und registrieren Sie sich und dann in Ihr Konto schauen. Nach der Protokollierung sehen Sie diesen Bildschirm, den Sie benötigen, um ein Projekt zu erstellen. Zunächst einmal müssen
Sie ein Projekt für unseren E-Shop erstellen. Also gehen Sie hier und sagen, ich will ein Projekt, das
zum Beispiel jeder Hub ist . Und ich klicke auf Weiter. Und dann erstellen Sie das Projekt. Danach benötigt das Projekt einen Cluster. Wir müssen also einen Cluster aufbauen, in dem wir unsere Datenbank anbieten. Hier gibt es gemeinsame Cluster, die kostenlos sind. Sie können es verwenden und den Server auswählen, der Ihrem Land am nächsten ist. Zum Beispiel werde ich diesen verwenden, den Standardwert. Und dann nach dem Erstellen des Clusters sind
wir bereit, unsere Datenbank zu erstellen. Die Datenbank in MongoDB namens Sammlung. Sie müssen also zu den Sammlungen gehen und eine neue erstellen, basierend auf Ihren Bedürfnissen. Wir haben bereits eine, die wir für den Kurs im Projekt 0 erstellt haben. Hier gibt es Sammlungen, bei denen ich mehrere Datenbanken erstellt habe. Ihr Teil besteht also nur darin, ein Konto zu erstellen und Cluster zu erstellen und Ihre eigene Sammlung zu erstellen, die wir im Kurs verwenden werden. Wir werden später sehen, wie man die Verbindung zwischen unserem Back-End-Code und der MongoDB in der Cloud herstellt.
6. Vorbereiten des API-Server: Jetzt fangen die Dinge an, hart zu werden. Nein, nein, gib nur. In diesem Modul werden wir sehen, wie man mit dem Produkt selbst und seinen Kategorien
natürlich im Backend-Teil arbeitet . Also die wichtigsten Schritte für die Erstellung unseres Produkts jetzt, um alle Daten des Produkts an das Front-End zu importieren. Was es bedeutet, dass wir eine API erstellen möchten, um alle Produktdaten an unser Front-End
abzurufen. Also brauchten wir irgendwie als JSON, dies auch das Erstellen des Produkts und Aktualisieren und Löschen des Produkts. Also werden wir zuerst das Produkt und die
Kategorien Schemas in der Datenbank in der Anwendungsebene erstellen . Außerdem werden wir so einfach wie möglich beginnen. Kategorien sind also das einfachste, was wir jetzt tun können. Also werden wir die restliche API für Kategorien tun. Und wir werden weiterhin ein neues Produkt über die restliche API in der Datenbank veröffentlichen. Und dann werden wir eine Liste der Produkte bekommen. Und danach erhalten wir ein Produktdetail nach ID. Und dann werden wir sehen, wie man die Produkte mit der Kategorie verbindet. Wenn ich zum Beispiel ein Produkt bekomme, werde ich sehen, wie man die Kategoriedetails innerhalb des Produkts erhält. Danach müssen wir unser Produkt aktualisieren. Manchmal müssen wir den Preis aktualisieren, oder wir wollen ihr Image aktualisieren, oder wir wollen den Namen des Produkts aktualisieren. Löschen eines Produkts. Manchmal, wenn ich das Produkt nicht habe, habe ich es aus meinem Shop gelöscht. Und dann wollen wir einige Statistiken wie das Erhalten von Produkten zählt, wie viele Produkte ich in meinem Geschäft habe. Zum Beispiel möchte ich nur die vorgestellten Produkte sehen. Denn wenn Sie sich erinnern, haben
wir Flag gekennzeichnet. Wir wissen, welche Produkte vorgestellt werden, damit
wir sie nur auf der Homepage anzeigen können. Und dann ist es sehr wichtig, dass wir eine Filterung haben. Daher müssen wir ihre Produkte auf der Grundlage von Kategorien filtern. Also werde ich nicht nur zum Beispiel etwas für die Gesundheit. So bekomme ich die Produkte, die es Kategorien gibt, ist Gesundheit. Das war's vorerst. Ich hoffe, Sie werden dieses Modul genießen. Es wird ein wenig detailliert sein, aber danach werden
Sie in der Lage sein, die Aufträge und die Benutzer zu erstellen, wie wir in den nächsten Modulen sehen.
7. Erstellen des Backend-Servers mit Express: Lassen Sie uns anfangen, unseren Back-End-Server zu erstellen, oder sagen wir unseren Webserver, wo wir unsere APIs an den Client rufen werden. Nachdem wir unseren Visual Studio-Code in den Ordner Back-End-Ordner geöffnet haben, wie wir ihn zuvor strukturiert
haben, führen wir einen Befehl npm init in MPM aus,
es wird uns nach einem Paketnamen fragen. Ich habe E-Shop, eine Jungfrau. Ich drücke Enter description, sagen
wir etwas Backend für den E-Shop zum Beispiel. Und dann der Einstiegspunkt wie wo die Anwendung starten wird, setze ich app.js und dann einige, einen weiteren Kommentar. Wir drücken die Eingabetaste und dann wird es uns fragen, dass alles in Ordnung ist. Wir drücken die Eingabetaste. Dann werden wir sehen, ein Paket Jason erstellt wird. Also lassen Sie uns jetzt unsere Datei erstellen bis js, wo wir unseren Einstiegspunkt unserer Anwendung starten werden. Also werde ich hier zum Beispiel console.log, Hello World setzen. Und dann wird es Hello World drucken, wenn ich diese Anwendung ausführe. Aber wie wir diese Anwendung ausführen, empfehle
ich, eine Bibliothek namens NADH Monde zu verwenden, die ein Dienstprogramm ist, das auf Änderungen
unseres Quellcodes überwacht , wenn wir Control S drücken oder diese Anwendung JS speichern, wird
es Starten Sie die Anwendung automatisch erneut. Nachdem wir diese Bibliothek installiert
haben, sehen wir, dass sie in einem Paket JSON als benutzerdefiniertes Skript unabhängig ist, können
wir es hier hinzufügen,
wie es ein Kommentar ist, um die Anwendung mit Node Monitor zu starten. Also kann ich sagen, Startknotenmonitor oder Knoten stöhnen. App Punkt JS. In diesem Fall lasse ich die Anwendung mit
der Einstiegspunktdatei app.js starten . Probieren wir es jetzt aus. Lassen Sie uns ab.js speichern und dann npm start schreiben. Und nachdem ich die Anwendung gestartet
habe, werde ich Hello World sehen. Und die Anwendung läuft noch. Es erkennt also jede Änderung, die ich in der Anwendung mache. Also sage ich helloworld mit der Änderung war Ausrufezeichen, und ich sehe, es hat sich geändert. Lassen Sie uns die Welt verändern E-Sharp. Wir werden hallo e-shop sehen. Das ist großartig. So haben wir bis jetzt nur eine laufende Anwendung, aber wir haben noch keinen Server. Um also einen Webserver zu erstellen, lassen Sie uns Express installieren, die eine berühmte Bibliothek von Node.JS ist, um einen Server zu hosten. Nach dieser Installation werde ich es auch in Abhängigkeiten sehen. Aber lassen Sie uns dieses Konsolenprotokoll entfernen und es eine Konstante erstellen, nennen Sie es Express und rufen Sie die Bibliothek Express mit dem Schlüsselwort require express auf. Es wird es automatisch von Knotenmodulen aufrufen. Und lassen Sie uns eine Konstante erstellen, die App genannt wird. Und diese App mit Aufruf eine Funktion namens Express, die wir zuvor erwähnt oder definiert haben. Dieser Webserver erfordert das Abhören eines bestimmten Ports. Also sage ich, dass zuhören. Und ich gebe, zum Beispiel, dreitausend als ein Hafen an. Und es gibt einen Rückruf. Callback wird uns geben, wir alle werden ausgeführt, wenn es eine erfolgreiche Erstellung des Servers. Also im Callback kann
ich jede Nachricht in der Konsole drucken. Zum Beispiel werde ich sagen, der Server wird jetzt gestartet oder der Server läuft jetzt auf dem Link lokalen Host mit 3000 Port. Lassen Sie uns nun die Anwendung erneut ausführen. Ich werde sagen, npm start. Und wir werden einen Fehler bekommen, weil ich den Server bereits betreibe. Also lasst es uns anfangen und ich führe es wieder. Ich werde lokalen Host sehen oder der Server läuft auf localhost 3000. Wenn ich den Browser öffne und diese URL besuchen, localhost 3000, mal sehen, was wir haben werden. Ich habe es hier gesetzt und ich sehe, dass kommen, bekommen,
nicht bekommen kann, weil ich keine anfängliche Route für die Anwendung angegeben habe. Wir erschaffen. Jetzt die anfängliche Route oder die Wurzel, können
wir sagen, app dot get. Wir werden sehen, dass Express uns alle HTTP-Anfragen zur Verfügung stellt. Zum Beispiel PUT, löschen und auch posten. Also vergiss es. Es akzeptiert zwei Parameter. Die erste ist die Route selbst. Zum Beispiel werde ich die anfängliche Route oder die Wurzel sagen. In diesem Fall werde ich nach einem Rückruf fragen. Der Callback wird die Antwort haben, die ich an den Client
senden werde , wenn er diese Route anrufen wird. Also sage ich in der Callback-Antwort, Punkt Sand, zum Beispiel, sagen
wir eine Nachricht, wir können es Hallo oder API nennen, nicht Hallo World. Also, jetzt haben wir diese API. Lassen Sie uns speichern, und jetzt können wir die Anwendung erneut im Browser ausführen. Die Anwendung wird eine GetMethod aufrufen und wir erhalten als Antwort, diese hallo API. Als Zusammenfassung
haben wir gesehen, wie wir unseren eigenen Server oder Webserver mit Express erstellt haben. Und wir beobachteten unsere Änderungen mit Knoten Monitor und wie wir diese Anwendung aufrufen erhalten, um eine Route zu initialisieren. Und wir laufen den Server unter einem bestimmten Port, den wir zuvor gesehen haben. Wir müssen eine API und eine Version in der URL dieses Out haben. Lassen Sie uns also sehen, wie wir das mit Umgebungsvariablen in der nächsten Vorlesung erstellen können.
8. Reading: Okay, also fangen wir mit Umgebungsvariablen an. Umgebungsvariablen werden normalerweise als öffentliche Variable verwendet, die in der Anwendung verwendet werden. Zum Beispiel möchte ich eine öffentliche Variable für die API-URL. Also diese API-URL, die für jede Route vorangestellt wird, die ich für meine Anwendung oder für meine API verwende. Wie wir zuvor gesehen haben, dass jede API, die wir hatten, vorangestellt
ist etwas wie Schrägstrich, API Schrägstrich Version eins. Und das bedeutet, dass jede API in meiner Anwendung diese URL hat. Und dann API-Version eins. Und dann sage ich, zum Beispiel, Produkte. Und dann kann ich einige Daten in dieser API posten ,
löschen oder erstellen. Also nun mal sehen, wie wir dieses Präfix lesen können. Also möchte ich nicht in meiner API wiederholen, ist immer die Zeichenfolge. So kann ich es in einer Konstante beheben, die von überall lesbar ist. Und dann kann ich es an das Mikrofon übergeben, an meine Strings Routen, und dann wäre es in dieser Route lesbar. Um dies zu tun, zuerst
normalerweise, nicht in der Node.JS, normalerweise haben wir eine Umgebungsvariable namens dot n oder Umgebungsdatei. Und welches Beispiel übergebe ich einen Variablennamen, den ich will, jeden Namen, den Sie zum Beispiel API-URL. Und dann kann ich die Zeichenfolge sagen, die ich übergeben möchte, die api Schrägstrich v1 ist. Und in diesem Fall werde ich diese API-URL überall in der Anwendung definiert. Aber zuerst, wie wir diese Variable aus dieser Datei in unserer Anwendung lesen können, gibt es eine Bibliothek, wir können sie von MPM-Paketen installieren. Und es nennt sich Punkt-Punkt-EMF. Also können wir nicht sagen, npm installieren dot EMF. Und diese Bibliothek ist in der Regel immer verfügbar. Und wir können es in der Anwendung JS in der Route in der Wurzel verwenden, Kein Problem. So können wir sagen, definieren oder wir können sagen, dass diese Bibliothek erforderlich ist. Also nicht EMF Schrägstrich Konflikt. Und normalerweise sollte dies in einer Zeichenfolge sein. Wenn ich sage, dass diese Bibliothek erforderlich ist, kann ich eine bestimmte Konstante verwenden, um diese Werte aus der M-Datei zu erhalten. Also werde ich hierher gehen und eine Konstante definieren. Lassen Sie uns es zum Beispiel API nennen. Und dann können wir sagen Prozess Punkt, Punkt, dann der Name der Variablen, die ich hier erstellt habe. Also kann ich API auf der Score-URL sagen. Also lasst uns alles retten. Und nun versuchen wir,
diese Variable zu drucken , um zu sehen, ob sie wirklich aus dieser Datei liest oder nicht. Also lassen Sie es uns am Start tun, als wir den Server gestartet haben. Also werde ich console.log sagen, die API für Konstante. Also dann werde ich meinen Server starten, mpm start. Und hier ist es, wir haben jetzt schon definiert. Also kann ich in jeder Route, die
ich habe, diese API-Variable plus die Route definieren oder übergeben , die ich möchte, zum Beispiel Produkte. In diesem Fall habe ich die vorangestellte API-Version eins plus Produkte. Wir werden das genauer in den nächsten Vorträgen sehen, um zu sehen, wie
man die Route erstellt und wie man sie baut und wie man sie nennt. Das Wichtigste, was Sie jetzt wissen müssen, dass wir
die öffentlichen Variablen in dieser Datei erstellen und sie überall in der Anwendung lesen können . In diesem Fall möchte
ich
zum Beispiel die Datenbankzeichenfolge oder die Verbindungszeichenfolge speichern . Ich kann es hier in dieser Datei speichern und zum Beispiel ein Geheimnis für die Authentifizierung, ich kann es auch hier speichern. Und wenn ich die Anwendung auf dem Produktionsserver bereitstellen möchte, werde
ich diese Variablen ändern. So werden wir auch eine andere Datei haben, zum Beispiel dot EMF, aber für Produktionsserver, werden
wir sehen, dass natürlich in der Vorlesung, wo wir die Anwendung Node.JS bereitstellen werden. Also nun gehen wir zum nächsten Vortrag, wo wir
die echte API erstellen und wie wir JSON-Daten durch sie senden weil wir JSON-Daten für unseren E-Shop benötigen, um mit
dem Frontend die Informationen über die Produkte und die Bestellung austauschen und et cetera.
9. Erstelle einen ersten API und Parsing Json-Daten: Jetzt werden wir sehen, wie man Daten zwischen Front-End und Back-End austauscht. Wir haben zuvor gesehen, wie man Daten mit dem Frontend mit der GET-Anfrage austauscht. Also senden wir Hallo API. Aber was wir getan haben, ist nur den Austausch einer Zeichenfolge, die Hallo API ist. Also müssen wir JSON-Daten austauschen. Zum Beispiel ist das Produkt ein Objekt, besteht aus ID, Name, Bild und dem Preis. Also lassen Sie uns jetzt die Produkt-API simulieren. Also auf den ersten, Lassen Sie uns das schöne Präfix wie zuvor. Also werde ich die Backticks verwenden,
die sehr hilfreich sind, um zwischen Konstanten und Strings zu kombinieren, ohne dieses Plus zu verwenden. Also jetzt, lassen Sie uns diesen Teil entfernen und ein Backticks erstellen. Und mit einem Zeichen Dollar und gebogenen Klammern. Ich werde API machen. Und dann sagen wir Produkte. Lassen Sie uns diesen Teil von hier entfernen. Und auch das hier. Und ich werde eine Konstante schaffen. Sagen wir, Produkt. Und dieses Produkt ist Objekt, enthält ID, sagen
wir eine, und Name, sagen
wir, Haare, Kommode. Und Bild mit, zum Beispiel, einige URL. So haben Sie hier die Möglichkeit, doppelte Anführungszeichen oder einfache Anführungszeichen auszuwählen. Aber mit JavaScript, Es ist besser, immer einfache Anführungszeichen in dieser Antwort zu verwenden. Lassen Sie uns dieses Produkt an das Front-End senden. Und wir werden die Anwendung ausführen. Jetzt haben wir die Anwendung läuft. Gehen wir zum Postboten. Postman ist Anwendung, wie wir zuvor gesprochen haben und wir sahen, wie man es installiert. Also kann ich APIs nicht wie mit GET-Methoden, Post, PUT usw. aufrufen. Also lasst uns hier unsere API
3000 und dann api Slash Version eins Schrägstrich Produkte haben . Und ich klicke auf Senden. Dann ist das Pons das Objekt, das ich bereits erstellt habe. Wir gehen also davon aus, dass wir dieses Objekt erstellen, indem die Daten des Produkts in der Datenbank oder aus der Datenbank abrufen und sie dann mit einer GetMethod an das Frontend senden. Also, was, wenn der Benutzer oder der Administrator der Anwendung des Problems nach oben, senden
wir, oder, zum Beispiel, erstellen Sie ein neues Produkt. So benötigt das neue Produkt eine Daten, die vom Frontend gesendet werden. Also, jetzt lasst uns diese Muskelmethode von get to post ändern. Welches Beispiel werde ich es kopieren und sagen Post. Die Postanfragen benötigen auch Daten. Diese Daten werden vom Front-End kommen. Also, wie ich diese Daten vom Frontend bekomme, ist
es sehr einfach, indem ich den Anforderungspunktkörper verwende. Also, nachdem ich die Daten des Körpers
gepostet habe, werde ich sie zurück an das Frontend senden. Lassen Sie uns also eine Konstante erstellen, sagen
wir ein neues Produkt. Und dieses neue Produkt wird auf Anfrage Punktkörper. Also lass es uns so machen. Konsole. Protokollieren Sie das neue Produkt. Also gehen wir zum Postboten. Postbote ändern wir diese Methode von get to post. Und der Körper der Anfrage wird zum Beispiel in der JSON-Zeile sein, die JSON ist. Und dann kann ich
zum Beispiel dieses Objekt übergeben . Und wenn ich auf Senden klicke, sehen
wir, dass wir eine zurückgeben. Und im Konsolenprotokoll wurde ich undefiniert. Das Problem ist also, dass der Körper nicht gut analysiert wird. Also brauchen wir etwas, das man Middleware nennt. Die Middleware ist eine Funktion, die die Kontrolle der Anfrage und die Antwort jeder API hat. Wenn also die Frontends und das JSON-Objekt, benötigen
wir das Back-End, um zu verstehen, dass dies benachbart ist. Also bitte analysieren Sie es und verwenden Sie es im Back-End. Um das zu tun, müssen
wir nur eine Sache von Express JS verwenden. Also müssen wir diesen JSON verwenden. Der Express akzeptiert also JSON-Daten. Und das Ding ist sehr einfach. Wie ich Ihnen schon sagte, brauchen
wir eine Middleware. Und diese Middleware kann mithilfe der App-Nutzung durchgeführt werden. Und dann sagen wir Express dot JSON. Und diese Methode machen wir unsere Daten von Express verständlich, die vom Front-End gesendet werden. Und wir können hier wie Middleware tippen. Und in Zukunft werden
wir sehen, dass wir alle Middleware setzen werden. In diesem Abschnitt. Zuvor wurde etwas namens BodyParser verwendet, und dieser Body-Parser wurde dupliziert. Also jetzt verwenden wir Express JSON. Wenn Sie also in den nächsten Vorträgen sehen, dass wir BodyParser verwenden, ersetzen Sie es
einfach durch ausgedrückt oder JSON. Auf diese Weise garantieren
Sie, dass Ihre Anwendung auf die richtige Weise ausgeführt wird. So jetzt sind wir in der Lage, ein get und auch Post der Daten zu machen. Ich werde zum Beispiel hier Friseur zu
wechseln und es zu schicken. Und ich werde den Friseur zwei zurückbekommen. Jetzt ist unsere API bereit. Wir beginnen jetzt, diese API-Struktur für Bestellungen für Produkte und 40 Benutzer zu erstellen, wie wir zuvor im vorherigen Abschnitt gesprochen haben. In der nächsten Vorlesung werden
wir sehen, wie diese APIs Ereignisse protokolliert werden. Zum Beispiel, wenn jemand Daten oder gute Daten postet, werden
wir sie in der Konsole unserer Anwendung sperren.
10. Logging: Es ist sehr hilfreich Fehler, dass der Entwickler zu wissen, was auf seinem Server los ist. So können wir die HTTP-Anfragen kennen und protokollieren, die vom Frontend kommen, wie Posts, get oder put oder delete. Um dies zu tun, gibt es eine sehr gute Bibliothek namens Morgan, so dass wir es verwenden können, um unsere HTTP-Anfragen zu protokollieren, die vom Frontend kommen. Also lasst uns diese Bibliothek installieren. Ich stoppe den Server, sagen m, Pm installieren Morgan. Und nach der Installation dieser Bibliothek können
wir es auch mit erfordern nennen. Also hat Morgan gekostet. Erfordert. Morgan. Wir sagten, dass diese Bibliothek eine Middleware-Bibliothek ist, also müssen wir sie in App Dot verwenden Morgan. Und es gibt einige Standardoptionen, die Tiny genannt wird. Dies ist gut für den Fall, dass die Log-Anfragen in einem bestimmten Format angezeigt werden. Lassen Sie uns zum Beispiel den Server erneut ausführen. MPM Start. Also haben wir hier, dass ein Server mit Postman läuft. Lasst uns ein paar Anfragen machen. Zum Beispiel werde ich den Beitrag erneut senden. Okay, zurück zur Anwendung oder zum Code. Wir werden sehen, dass wir eine Post-Anfrage auf der API und mit ihrer spezifischen Statusnummer erhalten haben. Lasst uns ein GET machen. Auch. Hier ist ein get, Senden und zurück an die Anwendung. Und ich sehe, dass ich auch protokolliert, sie GET Anfragen. Es gibt viele Optionen für diese Bibliothek, sodass Sie Ihre Protokolle wie gewünscht formatieren können. Aber das werden wir nicht tun. Wir werden nur winzig verwenden. Und natürlich können Sie mit diesen Protokollen auf einigen Dateien sagen, all dies
ist, wird hier in der Dokumentation dieser Bibliothek angezeigt. Jetzt haben wir nur eine gefälschte Daten des Produkts verwendet. Lassen Sie uns beginnen, diese Daten an die Datenbank zu binden. Also lassen Sie uns in der nächsten Vorlesung die Verbindung mit der MongoDB mit Atlas zu machen.
11. Installing und Verbindung mit MondoDB: Zuvor haben wir gesehen, wie man Daten
des Produkts fälscht , um sie zu speichern und sie in unserer Anwendung anzuzeigen. Jetzt müssen wir die Daten in der Datenbank speichern. Und in diesem Kurs verwenden wir MongoDB. Und wie wir vorher gesehen
haben, brauchen wir keine spezielle Software für MongoDB zu installieren. Wir müssen uns nur in der Cloud von MongoDB anmelden. Und dann erstellen wir unsere Datenbank und verbinden unsere Anwendung mit dieser Datenbank in der Cloud. Also vor allem, wie wir unsere Anwendung mit der Datenbank in der Cloud verbinden können. Also zuerst müssen wir eine Bibliothek namens Mongoose installieren. Mongoose ist verantwortlich für den gesamten Betrieb der MongoDB-Datenbank in der Anwendung oder einer Node.js Anwendung. Also lassen Sie uns diese Bibliothek installieren, die Mongoose genannt wird. Ich werde hier tippen npm installieren Mungo. Und wie jede Bibliothek müssen wir eine Konstante erstellen. Nennen wir es Mungo. Und das von Mongo, wir können sagen, es erfordert Mongolen. Wir können davon ausgehen, dass dieses Ding hier wie Import ist. Also importieren wir jede Bibliothek und speichern sie in einer Konstante. Normalerweise fügen wir die Verbindung zur Datenbank hinzu, bevor Sie den Server starten. Also hier werde ich sagen, Mungo, Punkt verbinden und trennen. Es fragt nach URIs. Uris oder Verbindungszeichenfolge. Ich kann es von MongoDB Cloud bekommen. Wir haben zuvor gesehen, wie man sich mit der Cloud von MongoDB verbinden und unsere Anwendung und Cluster und unser Projekt
erstellen kann. Und wir sahen, dass wir mehrere Sammlungen haben, oder wir können Datenbanken sagen. Und diese Datenbanken haben wir Zugriff auf sie über unsere Anwendung. Lassen Sie uns also sehen, wie wir diese Datenbanken in Clustern verbinden können. Wenn ich zu Clustern zurückgehe, sehe
ich hier eine Schaltfläche, auf der Connect steht. Wenn ich connect sage, kann
ich mehrere Optionen von MongoDB verwenden. Zum Beispiel, was wir brauchen, ist die Verbindung Ihrer Anwendung. Also müssen wir eine Verbindungszeichenfolge verwenden, um sie von
hier zu bekommen und sie in unsere Verbindungsmethode mit von Mongoose einfügen. also auf diese Option klicken, erhalten
wir eine Verbindungszeichenfolge. Lassen Sie es uns kopieren und in unserer Anwendung haben. Also bringe ich Zitate hierher und kopiere diese Verbindungszeichenfolge. Aber wir können nicht sehen, dass diese Verbindungszeichenfolgen einen Benutzernamen und ein Passwort und einen Datenbanknamen enthalten sollten. Aber von wo aus ich diese Informationen nicht bekommen kann, ist einfach in MongoDB Cloud. Wir können einen bestimmten Benutzer verwenden, um sich mit diesen Datenbanken zu verbinden. Wir müssen nur zum Datenbankzugriff gehen und einen neuen Benutzer erstellen. Und dieser Benutzer können wir mit Datenbank in der Cloud verbinden. Also lassen Sie uns hier klicken, fügen Sie einen neuen Datenbankbenutzer hinzu. Und lassen Sie uns einen Benutzernamen,
E scharfen Benutzer und das Passwort geben , Sie haben die Freiheit, ein beliebiges Passwort auszuwählen. Zum Beispiel setze ich von eins bis sieben. Er sagte, dass das Passwort zur Verfügung gestellt wird, ist sehr schwach. Also lassen Sie uns ein paar Buchstaben hinzufügen. Und dann hat es den Benutzer erfolgreich hinzugefügt. Wenn wir zu unserer Verbindungszeichenfolge zurückkehren, müssen
wir diese Daten hier ersetzen. Also zuerst werde ich hier den Benutzernamen, e-Sharp Benutzer
und das Passwort, das ich vorher hatte, und den Datenbanknamen eingeben. Okay, das haben wir noch nicht die Basis. Also lasst uns eins hinzufügen. Wir gehen zurück zu den Clustern. Und dann können wir hier unsere Sammlungen sehen. Und in dieser Liste von Sammlungen, die ich zuvor habe, kann
ich eine neue Datenbank erstellen. Also werde ich es einen Namen E-Sharp geben, dass die Basis und den gleichen Namen für die Sammlung. Zurück nahm diese Verbindungszeichenfolge. Wir können jetzt einen Datenbanknamen hinzufügen. Also jetzt haben wir die vollständige Verbindungszeichenfolge. Wir haben vorher über Umgebungsvariablen gesprochen. Also lassen Sie uns diese Zeichenfolge in den Umgebungsvariablen speichern, also kopiere ich sie. Und dann erstelle ich zum Beispiel eine Variable, nenne sie Verbindungszeichenfolge. Und dann gebe ich ihm diesen Wert, der
die Zeichenfolge ist, die ich von der Datenbank-Cloud bekommen habe. Und hier sage ich nur
Prozesspunkt-Umgebungsvariable , Punkt, Verbindung, Zeichenfolge. So jetzt, wie wir überprüfen können, ob wir mit der Datenbank verbunden sind oder nicht. Wenn wir diese Methode Connect überprüfen, werden
wir feststellen, dass es ein Versprechen zurückgibt. Das Versprechen wird normalerweise ausgeführt und es gibt zwei Methoden zurück. Einer ist dann, wenn seine Erfolge und eins mit dem Fehler, wenn es scheitert. Also hier werde ich dann setzen. Und dann, wenn ich
Pfeilfunktion und ich Konsole eine Nachricht protokolle
, ist diese Datenbankverbindung bereit. Und wenn es beim Fang scheitert. Und es ist auch Pfeilmethode. Wir können sagen, dass die Konsole den Fehler protokolliert. Lassen Sie uns versuchen, unseren Server zu starten. Also jetzt npm starten. Und wir sehen, dass es einige Benachrichtigungen gibt, die diese Veraltungswarnung sagen. Es sagt, dass der aktuelle URL-String-Parser veraltet ist. Also müssen wir eine bestimmte Variable verwenden. Daher müssen wir eine bestimmte Option als wahr verwenden, um diese Veraltungsverzögerung verschwinden zu lassen. Aber wie wir es verwenden können, sehen
wir, dass diese Verbindungsmethode einen anderen Parameter namens Optionen hat. Also mit diesen Optionen ist ein Objekt, wo ich die Optionen übergeben kann, die ich will. Also lasst uns das hier kopieren. Als Option hinzugefügt. Wir haben auch eine weitere Veraltungswarnung erhalten, die die Verwendung einheitlicher Topologie ist. Dies wird auch für die Suche nach den Servern verwendet. Also lassen Sie es uns hier hinzufügen. Und lasst uns sparen. Wir bekommen immer noch Fehler. Eigentlich müssen wir den Fehler auch den Datenbanknamen in den Optionen übergeben. Also kann ich sagen, dass es ein reserviertes Wort ist, es heißt DB-Name. Und mit diesem TB-Namen kann
ich den Datenbanknamen übergeben. Wir nannten unsere Datenbank in der Cloud als e-shop, dass die Basis. Und nach dem Speichern und dem Versuch, die Verbindung wiederherzustellen, sehen
wir erneut, dass die Authentifizierung fehlgeschlagen ist. In MongoDB Atlas müssen Sie eine Netzwerkachse angeben. Also dieser Netzwerkzugriff, müssen
Sie eine Whitelist von IPs haben, die auf Ihre Datenbank zugreifen können. Also habe ich schon zwei IPs. Ich kann eine weitere IP hinzufügen, indem ich zum Beispiel
zu Google gehe und einfach eingeben, was meine IP ist. Und im ersten Suchergebnis bekomme ich meine IP direkt. Also gehe ich hierher, kopiere diese IP, und dann sage ich, füge die neue IP hinzu. Also diese IP hinzugefügt wird, kann
ich sagen, mein Home-Office. Und dann klicke ich auf Bestätigen. Also zurück zur Anwendung. Wir können sehen, ob wir in der Lage sind, eine Verbindung herzustellen oder nicht. So können wir einfach noch einmal auf Speichern drücken. Und wir sehen hier, dass der Server läuft, aber wir haben noch keine Antwort vom Datenbankserver erhalten. Und wir sehen, dass die Datenbankverbindung bereit ist. Auf diese Weise verbinden
wir das Problem der Back-End-Anwendung mit der Datenbank in der Cloud. Im nächsten Teil werden wir sehen, wie man Daten in
diese Datenbank mit unseren APIs schreibt , die wir zuvor erstellt haben.
12. Mit MongoDB Atlas verwenden: Natürlich gibt es auch ein lokales Werkzeug, um die Datenbank von MongoDB zu durchsuchen. Sie müssen unsere Klasse nicht online nutzen. Sie können auch ein Tool herunterladen, das mehr,
mehr Funktionalität hat , wie wir später sehen werden, wie Export und Import von Daten. Weil ich Ihnen die Dateien und die Daten und die Datenbank, die ich erstellt
habe, geben möchte, um Ihre Daten oder Datenbank nicht selbst zu füllen. Sie werden die Dateien bereit haben. So können Sie dieses Tool verwenden, um wie
die Datenbanken und die Tabellen und die Dokumente auch in Ihre Datenbank zu importieren . Mit dieser Vorlesung gibt es einen Link für und etwas namens MongoDB Compass. Und das ist ein sehr großartiges Tool zum Durchsuchen der MongoDB-Datenbank. Und es ist für alle Versionen von Betriebssystemen verfügbar. Auch, wie für Windows, für einen Ponto und auch für Mac OS. Also, nachdem Sie diesen Link heruntergeladen haben, wird
es Ihnen eine Anwendung geben, die Sie verwenden können. Und diese Anwendung können Sie es zu Ihren Anwendungen installieren und dann können Sie es öffnen. Okay, lassen Sie uns die installierte Anwendung öffnen. Wie ich hier zeige, habe ich es hier in meiner Anwendungsliste, in meinem Mac-System. Und es wird für mich den MongoDB-Kompass anhängen. Wie Sie hier sehen, initialisieren wir es. Es wird also initialisiert. Und lassen Sie mich ein wenig wie Give it größerer Größe zu sein. Also jetzt fragt es mich, eine Verbindungszeichenfolge hinzuzufügen, die wir in der vorherigen Vorlesung erstellt haben, damit ich meine Verbindungszeichenfolge kopieren
und dann hier einfügen und dann auf Verbinden klicken kann. Ich habe bereits erklärt, wie man den Benutzernamen, das Passwort und auch den Datenbanknamen erhält. Also habe ich das schon getan. Also ist es in der letzten Zeit. Ich habe hier den E-Shop-Benutzer und auch MongoDB und all diese Informationen dazwischen. Also, jetzt müssen wir auf Connect klicken. Und dann wird es eine Verbindung zu meiner Datenbank herstellen. Wie Sie sehen, habe ich alle meine Cluster aufgelistet, die ich im Atlas habe. Also haben wir alle Datenbanken, die ich zuvor erstellt habe. Und auch die Datenbank, mit der wir arbeiten werden. Sie haben also zwei Möglichkeiten. Vielleicht können Sie MongoDB Atlas oder MongoDB Compass, MongoDB Compounds verwenden. Sie mussten nicht in den Browser schauen und auf die Website von MongoDB Atlas schauen. Aber Sie können die Verwendung lokal hören. Öffnen Sie einfach eine Anwendung, fügen Sie Ihre Verbindungszeichenfolge hinzu, und sie wird hier immer gespeichert. In diesem Kurs werde ich MongoDB Atlas verwenden. Und wenn wir für die Bereitstellung gehen, werde
ich MongoDB Compass verwenden, weil wir Daten importieren und exportieren müssen. Und auch. In der nächsten Vorlesung später
werde ich Ihnen zeigen, wie Sie Ihre Datenbank importieren und speichern. Sie müssen nicht alle diese Informationen manuell eingeben, wie z. B. die Datenbank. So haben Sie bereits eine Datenbank, die Sie in Ihre Sammlung
importieren können und dann können Sie sie verwenden. Ich möchte ihren Kurs verfolgen.
13. Lesen von Daten in die Datenbank mit API: Perfekt, Also bin ich so froh, dass wir jetzt eine erfolgreiche Verbindung zur Datenbank haben, lassen Sie uns jetzt versuchen, einige Daten in die Datenbank zu posten, damit wir sie in der MongoDB Cloud sehen können. In der relationalen Datenbank. Zuvor haben wir gesehen, dass die Beziehung zwischen den Tabellen, aber hier in MongoDB ist es anders zu erwerben. Wir können betrachten, die Namenstabelle ist eine Sammlung. Wie wir hier sehen, haben
wir bereits eine Datenbank. In dieser Datenbank gibt es eine Sammlung. So können wir sagen, die Sammlung ist eine Tabelle in relationaler Datenbank. Ich habe die Datenbank gelöscht, die wir zuvor erstellt haben. Ich werde ein neues mit der Tabelle erstellen, nennen
wir es Produkte. So haben wir zum Beispiel gesagt, dass unser Datenbankname e-shop ist. Datenbank. Produkte ist der Kollektionsname. Also habe ich die Datenbank. Jede Datenbank und darin gibt es eine Tabelle oder eine Sammlung. Wir können es Produkte nennen. Ok, großartig. Also, jetzt haben wir, sagen wir diese Sammlung, lassen Sie uns Daten zu dieser Sammlung veröffentlichen. Also in Postman, wie wir zuvor gesehen haben, haben
wir hier zu diesem Objekt, lassen Sie es uns in diese Datenbank schieben. Aber zuerst, was wir in der Node.JS Anwendung tun müssen, müssen
wir ein Modell mit Mongoose erstellen. Modell ist das gleiche wie eine Sammlung. So können wir in MongoDB sagen, es heißt Sammlung und in Node.JS heißt es Modell. Also müssen wir ein Produktmodell erstellen. Dieses Modell enthält die Spalten, die wir für das Produkt benötigt haben. Zum Beispiel der Name oder das Bild, oder zum Beispiel die Menge des Produkts in der Lagerung in Mongoose. Dies wird als Schema bezeichnet. Und wenn wir dorthin zur Dokumentation gehen, sehen
wir, dass Mongoose hier viel Flexibilität hat. So können wir Schemas erstellen. Zum Beispiel blockieren Schema, wie wir hier sehen. Und wir können den Titel des Feldes, Autor, Körper, und es gibt eine Art davon, und jedes Feld hat einige Optionen. So können Sie
beispielsweise Datum Punkt angeben . Nun, zum Beispiel, wir sind in diesem Datensatz oder dieses Dokument erstellt wird, dann werden wir sehen, dass es automatisch das Datum der Zeit der aktuellen Zeit dauert. Also lasst uns einfach anfangen. Lassen Sie uns zuerst das Produktmodell erstellen. Ich gehe zur Anwendung und danach, sagen
wir, verwenden und vor den APIs. Ich erstelle zum Beispiel bei Konstante, nenne es Produktschema. Und dieses Produktschema wird Mongoose Bibliothek und Schema verwenden. Und das Schema, das ein Objekt und
dieses Objekt akzeptiert , wird die Felder nehmen, wie wir hier in der Dokumentation gesehen haben. Also haben wir ein neues Schema und hier können wir unsere Felder auflisten. Also lassen Sie uns unsere Felder hinzufügen, die wir vorher hatten. Also sage ich, ich brauche den Namen. Wir Typ ist Zeichenfolge. Und zum Beispiel brauche ich auch Bild. Welcher Typ auch String. Es würde die URL des Bildes enthalten. Und lassen Sie uns auch etwas wie zählen auf Lager. Zählung auf Lager. Und diese Zahl auf Lager wird eine Zahl sein. Es gibt viele Arten. Sie können die Dokumentation von Mungo überprüfen und wir werden im Kurs
die verschiedenen Arten sehen , die wir für unsere Webshop-Anwendung verwenden werden. Nachdem wir dieses Schema
haben, müssen wir das Modell erstellen. Also sage ich konstantes Produkt. Normalerweise beginnen die Modelle mit Großbuchstaben. So können wir sagen Produkt, das Mungo Punkt-Modell ist. Und das Modell genannt, oder die Sammlung wird Produkt genannt. Und mit dem Produktschema, das wir zuvor hier hatten. Also sage ich Produktschema, und ich drücke Speichern. Jetzt haben wir das Produktschema und das Produktmodell bereits definiert. Also jetzt müssen wir zum Beispiel mit Posting-Anfragen,
wir müssen diese Post-Daten vom Front-End erhalten, das heißt, wir können Postbote oder jede andere Anwendung wie Angular oder React sagen. Und dann müssen wir diese Daten durch das Back-End empfangen, analysieren und in die Datenbank schieben. Um dies zu tun, müssen
wir zuerst ein neues Produkt erstellen, zum Beispiel dieses Modells. Also lasst uns das machen. Wir können sagen const Produkt. Und dieses Produkt ist ein neues Produkt, das wir vorher hatten. Aber was sind die Bereiche dieses Produkts? Das Produkt ist also dieses Modell, das wir vorher hatten. Und wir werden die Felder dieses Produkts hinzufügen, wie der Name. Und das Bild und die Zählung auf Lager. Also werde ich hierher gehen und ich werde diese Anfrage erhalten, die ich bekommen habe. Mit dieser Bitte bekomme ich die Leiche. Und mit dem Körper im Körper schicke
ich hier ID, Name, Bild, und ich kann auch auf Lager zählen. Es wird genau die gleiche Benennung hier sein, die vom Frontend kommt. Das Frontend und das Backend müssen sich also auf
die gleiche Benennung für die Felder und das Objekt einigen , die an das Backend gesendet werden. Also hier sage ich, der Name ist Anfrage Punkt Körper, Punkt Name. Bild ist Anfrage Punktkörper, Punktbild. Anzahl auf Lager ist auch von der Anfrage Punkt Körper Punkt Anzahl auf Lager. Jetzt haben wir das Modell bereit, also müssen wir es nur in der Datenbank speichern. Um das zu tun, können wir sagen Produkt Punkt. Und es hat eine Methode namens Speichern. Speichern. Es bedeutet, dass es in der Datenbank speichern. Wenn wir diese Speichermethode überprüfen, gibt
es ein Versprechen zurück, Versprechen mit dem Dokument. Also können wir sagen, dann gibt es ein Versprechen zurück. So können wir sagen, erstellt Produkt. Dies ist also das Produkt, nachdem es in der Datenbank erstellt wurde. Es ist also unsere eigene Methode. So können wir hier sagen, Antwortpunktstatus, dass es eine erfolgreiche Verbindung oder erfolgreiche Erstellung der Datenbank des Dokuments ist. Also kann ich hier sagen Punkt JSON. Also möchte ich das erstellte Produkt zurückgeben, um es im Frontend zu sehen. Und im Falle eines Fehlers oder irgendetwas passieren kann, können
wir sagen, fangen Sie den Fehler. Und dieser Fehler können wir Antwort Punktstatus sagen. Zum Beispiel 500. Es ist der Antwortcode für Fehler im http-Punkt-JSON. Ich erstelle zum Beispiel mein eigenes Objekt. Ich sage Fehler ist der Fehler, den ich bekommen habe. Und zum Beispiel sage ich, ob ihr Erfolg oder nein, vielleicht kann ich diese Variable im Frontend verwenden. Zum Beispiel, um einige Ladevorgänge zu beenden oder zurück zur Homepage zu gehen. Wenn es einen Fehler gibt. Wir versenden das Produkt bereits. Also lasst uns diesen Teil hier löschen und unser Backend MPM starten, starten. Wir haben es jetzt fertig und die Verbindung ist fertig. Lassen Sie uns ein paar Daten hier posten. Schön. Es ist prahlvoll, wir haben Ausweis, Name, Bild. Also, wenn wir zu unserer Sammlung in MongoDB gehen, Lassen Sie uns hier Aktualisieren drücken. Wir haben die gleichen Daten hier. Versuchen wir es erneut, indem wir die Anzahl auf Lager hinzufügen. Sagen Sie zum Beispiel 500 Stück in meinem Lager. Ich schicke es. Ich habe ein neues Produkt mit dem gleichen Namen erstellt, und es gibt die ID des erstellten Produkts zurück. Gehen Sie zurück zu MongoDB, aktualisieren Sie erneut. Schön. Ich habe auch zwei Produkte, die bereits über meine API im Back-End gepostet wurden. Und wir bemerken hier, dass es gesperrt und erfolgreich ist. Lassen Sie uns einen Fehler machen. beispielsweise einen Fehler zu machen, lassen Sie uns dieses Feld wie erforderlich machen. So Datenbank erkennt, dass diese Anzahl in Stoke Pflichtfeld ist. Es wird also mit einem Fehler antworten, den Sie nicht gesendet haben, zum Beispiel die Anzahl auf Lager. Um dies zu tun, gehen wir zurück zum Schema und wir ändern dies in ein Objekt. Der Typ dieses Objekts ist Zahl und erforderlich ist true. Also lassen Sie es uns speichern und unsere,
wieder unsere API ausführen , aber ohne Anzahl auf Lager. Und wenn wir den JSON validieren und erneut senden, werden
wir sehen, dass wir einen Fehler,
Fehler und erfolgreich, falsch oder fehlgeschlagen erhalten haben . In diesem Fall würde
ich sagen, der Fehler ist validieren oder Fehlerpfadanzahl auf Lager ist erforderlich. Also antwortete mir die Datenbank, dass dieses Feld erforderlich ist. Wenn ich es wieder mache, sein Erfolg. So haben wir jetzt eine Daten an das Back-End gepostet. Lassen Sie uns eine get-Anfrage erstellen. Also möchte ich diese Daten abrufen, Beispiel ihre Produktinformationen im Front-End
anzeigen. Um das zu tun, müssen wir eine get-Anfrage erstellen. So erstellen Sie eine GET-Anfrage einfach ändern wir dies zu bekommen. Und wir müssen die Produktliste angeben. Also lassen Sie uns zum Beispiel die alte Produktliste
bekommen. Und wenn ich die Anfrage sende, bekomme
ich die alte API, die wir vorher hatten. Also lasst uns es ändern, um es aus der Datenbank zu haben. Um dies zu tun, gehen wir zur Get-Anfrage und dann ersetzen wir diese Konstante und nennen sie zum Beispiel diese Liste. Und ich nenne nur das Modell selbst, das wir vorher erstellt haben und finden. Das war's. Also sage ich const Produktliste und die Antwort erhalten unsere, senden Sie mir die Produktliste. Lassen Sie uns das versuchen. Wir steigen auf. Wir stellen fest, dass wir hier einen Fehler bekommen haben. Der Fehler liegt daran, dass diese Find-Methode ein Versprechen zurückgibt. Und hier, wenn ich die Antwort schicke, ist diese Produktliste
vielleicht noch nicht fertig und ich habe sie noch nicht bekommen. Also muss ich warten, bis diese Produktliste
fertig ist und dann kann ich sie mit der Antwort senden. Es gibt einen anderen Weg, als zu tun, zum Beispiel, Punkt dann und nicht fangen. Das ist etwas, was wir mit await Schlüsselwort tun können. Und im await-Schlüsselwort erfordert es immer asynchrone Methode. Also habe ich diese Methode hier und es ist asynchron, und ich habe hier ein Gewicht. Also in diesem Fall, wenn ich die Produktliste anrufe, dann wird es warten, es wird gefüllt, und dann sende ich die Antwort an das Front-End. Also lasst es uns nochmal machen. Jetzt. Ich speichere und schicke dann diese Anfrage, wir sehen, dass wir die Daten hier bekommen haben. Wir haben den Fehler nicht mehr bekommen. Das ist deshalb, weil wir ein Versprechen zurückgeben. Wir sollten warten, bis die Datenbank uns ihre Antwort sendet, und dann werden wir im Front-End warten. Vielleicht werden Sie mich fragen, wie ich das Problem oder die Probleme erkennen kann. Es ist sehr einfach. Ich kann sagen, wenn eine Produktliste oder keine Produktliste, wenn es keine Produktliste gibt, dann kann ich Antwort Punktstatus 500 sagen. Und zum Beispiel kann
ich mit JSON Fehler oder Erfolg falsch sagen. Wenn also ein Fehler aufgetreten ist, zum Beispiel Verbindung oder irgendetwas, kann
ich einfach Fehler mit einem Erfolg zurückgeben, wenn diese Liste leer ist. Wir haben also zwei verschiedene Möglichkeiten, Fehler aus der Datenbank auszudrücken und zu fangen. Also kann ich hier sagen, finden, ich kann ein Gewicht und asynchron setzen, oder ich kann es mit normalen Versprechungen tun. Wie zum Beispiel, sage ich Speichern, Punkt dann und fangen. Natürlich ist dies mehr Code sparen. Wir haben das nur in zwei Zeilen gemacht, und das ist sehr gut. Von nun an werden wir immer async verwenden und warten. Das ist alles für jetzt ist Mungo. Lassen Sie uns etwas Refactoring machen. Es ist sehr schön, die Routen in einigen Dateien und die Modelle in einer anderen Datei zu haben. So können wir mehr Organisation unseres Codes, des Backends haben.
14. Die the untersuchen: Willkommen zurück. Ich habe meine Meinung hier geändert, also werden wir kein Refactoring durchführen. Lassen Sie uns zuerst die Datenbank von e-shop analysieren. Auf diese Weise können wir wissen, welche Routen und welche Schemas wir erstellen und die Dateien im Back-End erstellen können. Hier haben wir also am wenigsten der Tabellen Dokumente
oder Sammlungen, die wir in unserer Datenbank benötigen. Jeder Shop hat Produkte, Bestellungen, Kategorien, Benutzer und Bestellartikel. Dies ist der einfachste E-Shop. Wenn Sie also mehr erwachsen werden möchten, müssen
Sie mehr Tabellen wie eine Rezensionen haben oder zum Beispiel, einige neue Kategorien sind größere Kategorien. Also beginnen wir einfach und wir werden unseren E-Shop bauen, um langsam größer zu sein. Vor allem die Produkte, zum Beispiel, es hat ID, die die ID für das Produkt ist. Und diese ID wird generiert, wenn wir jede ID automatisch von MongoDB in die Datenbank posten. Der Name des Produkts und auch die Beschreibung. Und die Beschreibung erreicht Schriftart wird verwendet,
zum Beispiel, ich möchte einige HTML-Code speichern. Manchmal verwenden Menschen als eine Beschreibung der Produkte mit Bildern und Titeln und einigen komplizierten Reach Texten. So werden wir sehen, wie wir Editor im Front-End haben werden. Für HTML. Wir brauchen auch das Hauptbild des Produkts. Und es ist eine Zeichenfolge, eine Zeichenfolge, die die URL zu diesem Bild speichert. Außerdem brauchen wir eine Galerie von, eine Galerie wird einige Bilder und Array von Strings haben, von URLs, wo wir eine Galerie des Produkts haben, mehr Details über das Produkt. Und dann werden wir eine Marke und auch Preis, Preis der Produktkategorie haben. Es wird die Typkategorie sein. In MongoDB. Hier werden wir etwas haben, das Referenzen genannt wird. Es ist nicht wie relationale Datenbanken, aber hier können wir den Typ der Tabelle direkt definieren. Wie wir in Zukunft sehen werden, werden
wir sehen, dass diese Kategorie eine Art von
Kategorie ist oder einen Verweis auf die Kategorientabelle hat. Und zählen Sie auf Lager, wie viele Artikel dieses Produkts im Lager sind. Auch Bewertung basierend auf Bewertungen und ob dieses Produkt angezeigt wird oder nicht. Also, um es auf der Homepage sofort als vorgestelltes Produkt zu sehen. Und dann werden wir sehen, dass das, was sie, dieses Produkt ist vier Kategorien erstellt. Wir brauchen nur einen Namen, vielleicht ein paar zusätzliche Daten. Zum Beispiel, was ich im Frontend brauche, manchmal Farbe, so kann ich jede Kategorie basierend auf einer bestimmten Farbe und auch Symbol oder Bild färben. Für Bestellungen benötigen wir Bestellartikel, die ein Array von Auftragsposition ist. Und Bestellartikel ist eine Tabelle, in der es das Produkt und die Menge enthält. So wird jede Bestellung ein Produkt und die Menge haben. Also vielleicht werde ich 10 Produkte haben. Ich habe sie in einer Bestellung bestellt. Und dann wird jedes Produkt eine gewisse Menge haben. Die Lieferadresse eins und Adresse zwei. Und Stadt, Postleitzahl, Land, Telefonnummer des Benutzerstatus, um zu sehen, ob diese Geburtsauftrag, zum Beispiel, Biegen, Versand oder Lieferung. Und auch der Gesamtpreis. Wir werden sehen, wie der Gesamtpreis basierend auf den Bestellartikeln und
dem Benutzer, der diese Bestellung bestellt hat, berechnet wird. Denn wir werden nach jedem Benutzer suchen, der etwas bestellen möchte. Und dann das Datum der Bestellung. Für die Benutzer. Wir benötigen einen ID-Namen, E-Mail, wo der Benutzer sich mit seiner E-Mail und dem Passwort-Hash anmelden wird. Das Passwort sollte in der Datenbank gehasht gespeichert werden. Ich kann es nicht als Nur-Text speichern. Straße, Wohnung, Stadt und Postleitzahl. Und auch Land mit einer Telefonnummer. Und auch zu wissen, ob dieser Benutzer admin ist. So kann er sich
zum Beispiel im Admin-Panel anmelden oder nicht. Vielleicht wird jemand fragen, warum ich hier die Adresse vom Benutzer getrennt habe. Wie zum Beispiel kann ich hier eine zusätzliche Tabelle wie Adresse haben. Dann kann ich dieses Feld in diese Tabelle einfügen. Und ich kann Benutzer und Bestellungen mit dieser Adresstabelle verknüpfen. Eigentlich haben die meisten Aesops ein Problem, dass manchmal Benutzer,
nachdem er etwas bestellt hat , hat
er seine Adresse geändert. Aber die Bestellung ist bereits versandt. Also müssen wir die Bestellung als Flugzeug mit einer Lieferadresse speichern, wie der Benutzer sie platziert hat, nicht mit der Benutzeradresse verwandt. Wir werden diese Adresse nur verwenden, um
die Bestelladresse automatisch zu füllen , wenn der Benutzer nach dem Sperren etwas bestellt. Auf diese Weise haben wir einen Überblick über unsere Datenbank in MongoDB. Jetzt werden wir zum Backend gehen und die Dateien erstellen und unseren Code ein wenig
umgestalten, um auf dieser Datenbankstruktur zu basieren.
15. Backend Backend und Schemas erstellen: Willkommen zurück. Ich stelle mir jetzt vor, dass was, wenn wir alle Schemas hier in dieser Datei App.js platzieren, es sehr groß wäre. Und ich denke, wir werden Tausende von Zeilen hier haben. Normalerweise setzen
sie in Node.JS, den Leuten oder den Programmierer im Allgemeinen den Leuten oder den Programmierer im Allgemeinendiese Routen ein, zum Beispiel die API-Routen und auch die Schemas in getrennte Dateien. Um, lassen Sie uns das jetzt tun und wir werden sehen, wie das Projekt besser zu organisieren. So weiter Schemata. Lassen Sie uns hier einen Ordner erstellen. Wir nennen es Modelle. Und innerhalb von modal werden wir eine Datei für jedes Modell erstellen, das wir haben, zum Beispiel Produkte oder Produkt dot js. In Produkten AS werde ich dieses Schema platzieren. Also lassen Sie uns diesen Teil kopieren und ihn hier platzieren. Mungo ist in dieser Datei nicht definiert, daher müssen wir auch diesen Teil kopieren, wo Const Mungo
Mungo erfordern , weil diese Datei den importierten Mungo in der app.js nicht sehen kann. Also haben wir hier const Mongoose und Mungo Schema. Und übrigens, lasst uns auch den Mogul holen. Obwohl wir es geschnitten haben und wir es hier platzieren. Nun, wie ArcJS dieses Modell in Node.JS verwenden wird. Wenn wir eine Konstante oder zum Beispiel
eine Klasse oder ein Objekt exportieren möchten , sagen
wir einfach, dass wir es auf diese Weise tun müssen. Exportiert Punktprodukt und dann das Modell. Also, hier, in diesem Fall, wird
das Produkt in jeder anderen Datei zu sehen sein. Und ich kann es mit der Require-Methode importieren. Also gehen Sie zu ab.js Datei und ich sage const Produkt, das kommt von, indem Sie es aus dieser Datei benötigen, wo wir das Modell haben, zum Beispiel Modelle Schrägstrich Produkt. In diesem Fall haben wir das Produkt erhalten und wir können es als Modell für unsere API verwenden. Lassen Sie uns mehr Refactoring machen. Wir sehen, dass wir alle APIs haben, erhalten Post, GET Post. Also, wenn wir das für alle Schemas tun, wäre
es eine sehr große Datei. Es gibt eine Möglichkeit in Node.JS, dass Sie auch die Routen oder die APIs in separater Datei
speichern können. Ich werde Ihnen zeigen, wie es geht. Lassen Sie uns zuerst einen Word-Ordner erstellen, Dürre Router. Und innerhalb des Routers erstelle ich auch Produkte, die js. Für jedes Modell gibt es
vielleicht Router. In Express. Es gibt etwas namens Router, und dieser Router ist nur verantwortlich für das Erstellen von APIs, Stoppen der APIs und das Importieren und Exportieren zwischen den Dateien. Also, wie geht man das? Zuerst müssen wir den Express importieren. Express erforderlich. Und der Router wird Teil von Express sein. So können wir sagen Express-Punkt-Router. Also dieser Router, wenn ich ihn in ArcJS importiere, kann
ich ihn hier verwenden. Und dieser Router, es kann als Middleware verwendet werden, so kann ich es mit App-Nutzung verwenden. Also zuerst, lasst uns bewegen,
sehen, wie man diese Router bewegt. Lassen Sie uns zuerst alle APIs kopieren, die wir hatten und sie hier platzieren. Anstelle von App. Ich sage nur Router. Das ist sehr einfach. Und auch lösche ich sie von hier. Und wie wir gesagt haben, bis die 2s ist, kann
es auch das äußere verwenden. So können wir die Haupt-API-Route der Produkte nehmen und hier
zum Beispiel den Produkt-Router platzieren . Aber woher diese Produkte Router kommen wird, wird
es von hier kommen. Also kann ich nicht sagen, dass ich auch den Router exportieren möchte. Also kann ich hier gehen und sagen, dass Modulpunkteexport Router ist. Also haben wir hier eine andere Art zum Exportieren. Hier exportieren wir das Produkt selbst, und hier exportieren wir ein Modul. Also auf diese Weise kann
ich sagen, Produkte Router ist eine Konstante. Also können wir hier sagen, konstant. Produkte Router kommen von, erfordern, von Routern. Und dann Produkte. So werden wir hier sehen, dass diese Anwendung diese Routen von Routen verwendet, die von Produkten Router kommen. Also hier müssen wir etwas tun. Wir können die API nicht so verwenden, da es sonst sein wird, können
wir dies als die Kinder betrachten. Also zum Beispiel, hier muss
ich nur das Versteck platzieren damit ich es berücksichtigen kann, wenn ich localhost 3000 Slash-Produkte sage, dann kann ich dieses erreichen, bekommen. Und das Gleiche für die Post. Wenn ich etwas in der Zukunft wie Count möchte, sage ich es so, dann wird die API http 3000 Schrägstrich Produkte Schrägzahl sein. Das ist also der beste Weg, wie wir das in separater Datei umgehen können. Aber zuerst haben wir hier das Modellprodukt. Also müssen wir auch dieses Modell importieren. Also sage ich const, Produkt wird von Modellen das Produkt benötigt. Jetzt haben wir die Routen abgeschlossen. So haben wir alles bekommen Post und wir werden sehen, wie man das Löschen und Update hinzufügt. Speichern wir diese Datei und speichern Sie sie auch hier. Machen Sie hier etwas mehr Organisation des Codes, damit wir ihn nicht mehr brauchen. So können wir hören, sagen Router. Und hier, der Produkt-Router, können
wir es hier importieren lassen. Mal sehen, ob alles gut funktioniert, können
wir MPM sagen, starten. Alles ist verbunden und alles funktioniert wie Rauch. Dasselbe gilt auch für die anderen Datenbanksammlungen. Zum Beispiel werde ich hier Bestellungen GS und auch Benutzer und auch die Kategorie haben. Auch das Gleiche für diese Autoren. Ich werde die gleichen Akten haben. Ich bin mir sicher, dass Sie nicht daran interessiert sind, den ganzen Prozess zu sehen, weil es genau der gleiche ist. Ich werde sie hinzufügen. Und dann werden wir danach sehen, wie sie am Ende aussehen, unsere Anwendung sieht so aus. In app.js. Wir haben die Middlewares, Routen, und auch die Datenbankverbindung und den Verkäufer. In den Strecken. Ich habe Routen für jeden Typ oder,
oder für jede Sammlung, die wir in unserer Anwendung hatten, erstellt. Also gehe ich hierher und habe das genau wie die Produkte kreiert. Wir haben, die Benutzer Bestellungen, Kategorien. Und das Gleiche für Schemata. Jedes Schema hat jetzt sein eigenes. In diesem Fall haben
wir jetzt alles bereit, um unsere APIs zu erstellen. Derzeit benutze ich nur bekommen in jedem Typ. Ich möchte nur eine Sache erwähnen. Wenn wir das Modell aus Exporten dot-Produkt auf diese Weise exportieren, nicht auf diese Weise. Wenn wir es importieren, müssen
wir es als Objekt importieren. Also hier, wenn ich zu den Produkten gehe, importiere
ich es so. In ES6 haben wir dieses Objekt Zerstörung. Dieses Modell gibt also ein Objekt zurück. Also muss ich ein neues Objekt erstellen und diesem alle Felder dieses Objekts zuweisen. Also in diesem Fall kann ich es überall mit
Sicherheit verwenden, es gibt kein Problem, wenn Sie auf diese Weise verwenden. Die Art, das Modul direkt zu exportieren. Lassen Sie uns unsere API ausprobieren. Jetzt. Ich gehe hier und ich sage bekommen, ich habe Liste der Produkte. Das war's vorerst. Für die nächsten Vorträge werden wir sehen, wie man diese Schemas füllt und wie man sie mit den Strukturen unserer Datenbank verbindet. Und wir werden sehen, wie wir unseren E-Shop weiter besser aufbauen können.
16. CORS Enabling und warum wir das Beeren: Wenn Sie ein Front-End und die Back-End-Entwicklung in ihrer gleichen Zeit tun. Ich bin sicher, dass Sie diesen Fehler gesehen haben. Dieser Fehler namens Cross-Origin Resource Sharing, was in einer menschlichen Sprache bedeutet, dass Node.JS Anwendung keiner anderen Anwendung vertrauen kann. Also, wenn ich Anfragen von meinem Frontend an das Backend sende, dann das Back-End, wenn Lot mir dasselbe antwortet, was ich will, weil es verboten ist. Es verwendet einen anderen Port, der eine völlig andere Domäne ist. also in meiner Front-End-Anwendung einen Dienst erstelle, Wenn ichalso in meiner Front-End-Anwendung einen Dienst erstelle,um die APIs aufzurufen, bekomme ich diesen Fehler. Und in Mozilla org erklären
sie alle Daten oder alle Details zu diesem Kurs. Also irgendwie in der NodeJS-App müssen
wir diesen Kurs aktivieren. Wie können wir jeder Anwendung erlauben, API von meinem Server anzufordern. Es gibt eine Bibliothek namens Kurs. Wir können es verwenden, um den Kurs für jede Anwendung zu ermöglichen. Also stoppe ich den Server und ich sage npm installieren Kurs. Nach der Installation müssen wir es benötigen und importieren. Also hier importieren wir alles in ArcJS. Also sage ich const natürlich, erfordern Kurs. Und um den Kurs zu aktivieren, ist
es vor allem sehr einfach, vor dem Start der Anwendung, bevor wir einen Dienst in der Anwendung verwenden, müssen
wir tun, keine Kerne verwenden. Und App Dot Optionen. Mit Stern, wie alles. Ich benutze den Kurs. Diese App dot-Optionen. Es bedeutet, dass es sich um eine Art von HTTP-Anfragen handelt, wie GET und post und put und delete. Aber was ist es? Wenn wir Google HTTP-Optionen, sehen
wir, dass HTTP-Option ist eine Methode Anfragen erlaubt Kommunikationsoptionen für eine bestimmte URL an den Server. Wenn ich also sage, ich will einen Stern, also erlaube ich alles mit diesem Kurs. In diesem Fall erlaube
ich also, dass alle anderen HTTP-Anfragen von jedem anderen Ursprung übergeben werden. Daher ist es sehr wichtig, diesen Kurs zu verwenden und ihnen zu ermöglichen, diesen Fehler zu vermeiden. Schließlich, nachdem wir dieses Modul oder diesen Abschnitt beendet haben, würde
ich sagen, dass dieses Projekt das Startup für uns ist, um das Problem des Back-Ends zu erstellen. Also werde ich es als Zip-Datei setzen, damit Sie es herunterladen und von hier aus starten können. Sie können dieses Projekt in Ressourcen mit dieser Vorlesung sehen. In den nächsten Modulen werden
wir sehen, wie alle Schemas und APIs für jeden Teil der Anwendung erstellt werden.
17. Produkte und Categoris: Jetzt fangen die Dinge an, hart zu werden. Nein, nein, gib nur. In diesem Modul werden wir sehen, wie man mit dem Produkt selbst und seinen Kategorien
natürlich im Backend-Teil arbeitet . Also die wichtigsten Schritte für die Erstellung unseres Produkts jetzt, um alle Daten des Produkts an das Front-End zu importieren. Was es bedeutet, dass wir eine API erstellen möchten, um alle Produktdaten an unser Front-End
abzurufen. Also brauchten wir irgendwie als JSON, dies auch das Erstellen des Produkts und Aktualisieren und Löschen des Produkts. Also werden wir zuerst das Produkt und die
Kategorien Schemas in der Datenbank in der Anwendungsebene erstellen . Außerdem werden wir so einfach wie möglich beginnen. Kategorien sind also das einfachste, was wir jetzt tun können. Also werden wir die restliche API für Kategorien tun. Und wir werden weiterhin ein neues Produkt über die restliche API in der Datenbank veröffentlichen. Und dann werden wir eine Liste der Produkte bekommen. Und danach erhalten wir ein Produktdetail nach ID. Und dann werden wir sehen, wie man die Produkte mit der Kategorie verbindet. Wenn ich zum Beispiel ein Produkt bekomme, werde ich sehen, wie man die Kategoriedetails innerhalb des Produkts erhält. Danach müssen wir unser Produkt aktualisieren. Manchmal müssen wir den Preis aktualisieren, oder wir wollen ihr Image aktualisieren, oder wir wollen den Namen des Produkts aktualisieren. Löschen eines Produkts. Manchmal, wenn ich das Produkt nicht habe, habe ich es aus meinem Shop gelöscht. Und dann wollen wir einige Statistiken wie das Erhalten von Produkten zählt, wie viele Produkte ich in meinem Geschäft habe. Zum Beispiel möchte ich nur die vorgestellten Produkte sehen. Denn wenn Sie sich erinnern, haben
wir Flag gekennzeichnet. Wir wissen, welche Produkte vorgestellt werden, damit
wir sie nur auf der Homepage anzeigen können. Und dann ist es sehr wichtig, dass wir eine Filterung haben. Daher müssen wir ihre Produkte basierend auf Kategorien filtern. Also werde ich nicht nur zum Beispiel etwas für die Gesundheit. So bekomme ich die Produkte, die es Kategorien gibt, ist Gesundheit. Das war's vorerst. Ich hoffe, Sie werden dieses Modul genießen. Es wird ein wenig detailliert sein, aber danach werden
Sie in der Lage sein, die Aufträge und die Benutzer zu erstellen, wie wir in den nächsten Modulen sehen.
18. Products: Willkommen zurück. In dieser Vorlesung werden
wir sehen, wie Sie das Produktmodell oder das Produktschema erstellen. Alles in Mongoose beginnt mit Schema. Jedes Schema wird einer MongoDB-Sammlung zugeordnet und definiert die Form des Dokuments innerhalb dieser Sammlung. Basierend auf dem Modell, das Sie rechts auf dem Bildschirm sehen, werden
wir das gleiche Schema erstellen, wie wir es vorher in diesem Modell erstellen. So können die Felder des Produkts wie hier beginnen, ich sage, der Typ dieses Feldes ist eine Zeichenfolge. Und es gibt Schemaoptionen oder Schema-Typ-Optionen. Diese Schema-Typ-Optionen, können
Sie sie auf Mongoose Dokumentation sehen. Also gehe ich hier zur Mongoose Dokumentation. Ich gehe zu Schema-Typen. Und in Schema-Typen können
wir sehen, dass es viele Typen gibt. Zum Beispiel, string, number, date, und es gibt etwas namens Optionen, wie wir hier in diesem Beispiel sehen. Also gehe ich zum Beispiel zu Schema-Typ,
und ich sehe, dass es Pfad und Optionen in der Dokumentation Schema-Typ-Optionen gibt, ich kann alle Optionen sehen, die ich brauche, um mein Schema zu erstellen. Was wir eigentlich für unseren Kurs brauchen, denke
ich, dass wir dieses erforderliche Feld und auch etwas
namens href benötigen , um auf eine andere Tabelle und Standard zu verweisen, was ein Standardwert ist, wenn das Objekt des Produkts erstellt wird. So ist der Produktname immer erforderlich. Ich habe es auf wahr gesetzt. Das nächste Feld ist die Beschreibung, die eine kurze Beschreibung des Produkts sein wird. Und es wird auch eine Schnur sein. Ist es erforderlich? Ich würde sagen, die kurze Beschreibung wird in unserem Fall erforderlich sein. Und dann gehen wir zur reichen Beschreibung. In der Rich-Beschreibung ist auch eine Typ-Zeichenfolge. Aber ich würde sagen, es ist nicht erforderlich. Und wir können einen Standardwert dafür setzen, wenn es erstellt wird. Zum Beispiel sage ich leere Zeichenfolge. Dasselbe gilt für das Bild. Also sage ich hier auch, das Bild ist eine Zeichenfolge und es hat einen Standardwert wie leer. Jetzt gehen wir zu Bildern. Bilder. Sie sind immer Array von Strings. So können wir es einfach wie dieses Array ausdrücken. Und der Typ jedes Elements dieses Arrays ist eine Zeichenfolge. Wir haben auch Marke, die das Gleiche sein wird. String und Preis. So wird der Preis in der Art und Weise sein Typ Zahl ist. Und der Standardwert. Wir können sagen, es ist 0. Der nächste Schritt jetzt müssen wir die Kategorie hinzufügen. Also ist es einfach. Wir sagen, Kategorie ist Art der ID der Kategorie. Also hier im Produkt, wenn ich ein Produkt hinzufügen möchte, verwende
ich die Kategorie-ID, nicht die ganze Kategorie. Also sage ich, dass die Verbindung zwischen der Tabelle und
des Produkts und der Tabelle der Kategorie die ID der Kategorie ist. Der Typ dieses Feldes wird also Mongoose Punktschema, Punkttypen, Punkt-Objekt-ID sein. Also in diesem Fall muss
ich immer die ID übergeben. und wie würde ich sagen, dass diese ID mit Kategorien Tabelle oder Kategorieschema verbunden ist. Ich mache das einfach. Ich sage, eine Referenz ist Kategorieschema. In diesem Fall wird
diese ID mit dem Kategorieschema verbunden sein. Wenn ich ein Produkt hinzufüge, ist
es die Suche in Kategorien und ich hole bestimmte ID. Und dann sage ich, dieses Produkt hat Kategorie, zum Beispiel Schönheit und Gesundheit. Ist das erforderlich? Ja, fügen wir es bei Bedarf hinzu. Das nächste Feld, das wir tun Wir haben bereits ist auf Lager gezählt. Auf Lager zählen, Es ist normalerweise eine Nummer und erforderlich. Sie müssen also angeben, wie viel von diesem Produkt Sie in Ihrem Speicher haben. Es gibt auch eine andere Eigenschaft, die wir max und Min setzen können. Zum Beispiel sage ich, Minimum hat 0 und Maximum. Es hat zum Beispiel 255. Also sage ich hier, dass, wenn ich ein Produkt mit minus Anzahl der Anzahl auf Lager poste, dann werde ich Fehler bekommen, weil Mungo, wenn es zu mir und sagen Sie mir, dass, nein, das ist falsch. Sie müssen die Zahl zwischen 0 und 255 setzen. Das Gleiche gilt zum Beispiel für die Bewertung und auch für eine Reihe von Bewertungen. Sie sind Zahlen. Also habe ich sie hier hinzugefügt. Und das Feld ist gekennzeichnet ist Typ Boolean. Der Standardwert ist also falsch. Dies ist also, um das Produkt auf der Homepage als vorgestelltes Produkt zu zeigen. Außerdem habe ich das Felddatum erstellt. erstellten Daten sind also ein Typdatum und der Standardwert ist jetzt Datum Punkt, also ist es sehr einfach. Wenn also das Produkt oder diese Anfrage kommt, wird es die aktuelle Zeit in Anspruch nehmen. Jetzt haben wir alle das Schema sind bereit für ihr Produkt und wir werden später
sehen, wie man Produkt in den Post-Anfragen hinzufügen und wie man es bekommt.
19. Categories und Schema: Zuvor haben wir das Kategorieschema erstellt. Und wie Sie hier im Modell auf der rechten Seite des Bildschirms sehen, müssen
wir diese Felder erstellen. Also fangen wir mit dem Namen an. Es ist genau das Gleiche, wie wir es für das Produkt getan haben. Also sage ich, Typ Zeichenfolge erforderlich durch. Um also nicht so viel Zeit beim Tippen zu nehmen, werde
ich die anderen Felder hinzufügen, weil sie auch den String-Typ haben. Also hier haben wir Symbol und Farbe. Das Symbol wird zum Beispiel Symbolname sein, wir verwenden einige Schriftartsymbole oder Google-Material-Icons. Also kann ich nur den Icon-Namen sagen. Und auch ich sage hier die Farbe, diese Farbe wird ein Hash,
Hash-String sein, wie so etwas wie ich 000 000 sagen kann, was schwarz ist. Auf diese Weise kann
ich die Farbe der Kategorie speichern, die ich im Frontend anzeigen muss. Beginnen wir jetzt mit der Erstellung der API der Kategorie. In der nächsten Vorlesung werden wir sehen, wie Kategorie hinzufügen und gelöscht.
20. Kategorien hinzufügen und löschen: Großartig. Also zurück in die reale Welt. Jetzt werden wir die Kategorie API haben. In dieser Vorlesung werden
wir wissen, wie man eine Kategorie hinzufügt und eine Kategorie entfernt. Ich habe hier einfach angefangen, weil die Kategorie-API die einfachste ist, die wir in der Zukunft sehen werden. So erstellen Sie kompliziertere APIs, wie die Produkte und die Bestellungen. Wie Sie sich erinnern, bevor wir die Routen und Routen erstellt
haben, fügen wir unsere APIs hinzu. Wir haben hier ein GET, wir werden es bearbeiten, um einen besseren Weg zu machen, oder wir können es halten, um Liste der Produkte zu erhalten. wir nun eine Kategorie hinzu. Also durch die Erstellung von Router-Punkt-Post. Also werde ich eine Kategorie hinzufügen, also durch Schrägstrich und dann asynchron, Anfrage und Antwort. Dann werde ich hier das Hinzufügen zur Datenbank mit Mongoose und das Hinzufügen einer neuen Kategorie machen. Wir haben vorher gesehen, dass die Anfrage immer die Informationen vom Front-End erhalten hat, wie sie Benutzer die Informationen senden. Und dann lesen wir sie und posten sie in die Datenbank. Lassen Sie uns zum Beispiel eine Konstante erstellen, können
wir es nennen oder Kategorie lassen. Und das wird ein neues Modell der Kategorie sein. Also diese Kategorie, wir haben es bereits hier importiert. Und wir werden das Objekt dieser Kategorie wird
Name und auch Symbol und Farbe sein , genau wie das Schema. Also, wie würde ich diese Daten bekommen? Also fragen Sie Punkt, Körper, Punktnamen. Also muss mir das Frontend genau diesen Namen schicken. Also auch das Gleiche gilt für Anfrage Punkt, Symbol, Punkt oder sorry, Punkt, Körper, Punktsymbol. Auch für die Farbe. Wir fügen hier hinzu. Die Farbe. Wenn Sie sich erinnern, als wir ein Produkt hier gepostet
haben, hatten wir etwas wie speichern. Also sage ich, das Modell Punkt speichern, und dann wird dieses Speichern mir ein Versprechen zurückgeben. Und dann kehre ich zurück mit dem Status, der Produkte erstellt hat. Und wir haben vorher auch über warten und async gesprochen. Also lassen Sie es uns jetzt mit einem Gewicht und async tun. Mit einem Gewicht und einer Spüle sage
ich Kategorie, die ich vorher erstellt habe. Ich kann sagen, dass unser Gewicht der Kategorie, die ich erstellt Punkt speichern. Also in diesem Fall warte ich, bis das gerettet wurde. Und dieses Speichern wird für mich ein Versprechen
mit dem Dokument oder der Kategorie selbst zurückgeben , die erstellt wird. Und dann überprüfe ich, ob es keine Kategorie gibt, wie keine Kategorie erstellt. Dann sage ich Rückgabefehler. Der Antwortpunktstatus sagt also 400 vier, zum Beispiel Punkte und dass die Antwort zum Beispiel oder die Kategorie nicht erstellt werden kann. Zum Beispiel. Und dann, wenn es Kategorie gibt, dann sage ich Antwortpunkte beenden die Kategorie. Das ist sehr einfach. Als Zusammenfassung erstelle
ich ein neues Kategoriemodell und füllte es dann mit Daten. Ich habe es mit Mongos gespeichert und dann habe ich hier gewartet, bis diese Kategorie fertig ist. Und dann überprüfe ich, ob es Kategorie
gibt, gibt es Daten in dieser Kategorie, dann schicke ich es. Aber wenn nicht, gebe ich einen Fehler zurück. Starten wir jetzt unseren Server. Mpm start verbunden mit der Datenbank. Alles ist in Ordnung. Und ich benutze Postman. Postbote zum Beispiel habe ich diese Kategorie erstellt. Ich sagte, Name ist Gesundheit und Symbol Symbol ist Symbol Gesundheit und etwas Farbe. Ich schicke es und ich sehe, dass es erfolgreich gepostet wurde. Und ich habe eine neue ID dieser Kategorie, um zu überprüfen, ob es wirklich funktioniert. Wir gehen wieder zu Atlas und überprüfen es in der Datenbank. Ich gehe hierher und habe es schon gefunden. Also lassen Sie uns eine andere Kategorie erstellen. Zum Beispiel, wie Computer. Und dieser Computer hat Icon Computer und eine bestimmte Farbe im Front-End können Sie eine Farbe Pickup erstellen. Farb-Tonabnehmer. Wir weisen Ihnen den Code der Farbe zu. Zum Beispiel sage ich 444, und ich schicke es und ich habe ein neues erstellt. Ich gehe zu Atlas. Und sag Erfrischen. Und wir werden sehen, dass diese Kategorie auch hier hinzugefügt wird. Also haben wir Computer und Gesundheit. Lassen Sie uns nun eine Kategorie löschen. Das Löschen einer Kategorie ist identisch. Also können wir nicht sagen, Router dot, löschen, nicht post. Und ich sage das aus, was ich zum Löschen einer Kategorie zuweisen möchte. Und dann sage ich Anfrage und Antwort als Rückruf. Und ich würde diese Anfrage und Antwort verwenden. Lass es uns hier mit Versprechen machen. Wir haben es vorher mit einem Gewicht und async gemacht. Machen wir es hier mit einem versprechenden Weg. Also zuerst nenne ich das Modell, ich sage Kategorie Punkt. Es gibt Methode, die nach ID suchen und entfernen genannt wird. Also finden wir eine ID durch und entfernen sie dasselbe mit find by ID und delete. Also hier muss ich die Kategorie finden, die ich löschen möchte. Also nach ID. Wo ich also die ID bekomme, bekomme
ich die ID vom Benutzer oder vom Client. So wird der Client mir
irgendwie die ID senden und dann werde ich sie in der Datenbank finden und gelöscht. Also, wie kann ich die ID vom Client bekommen? Es gibt einen Weg, Es ist sehr guter Weg. Es ist über die URL. Also kann ich hier nicht mit zwei Punkten sagen und dann kann ich mit ID sagen. Also diese ID, können Sie es wie Sie wollen, wie Sie wollen, wie jeder Name Sie wollen. Dann wird die URL wie api Slash v1 aussehen Schrägstrich die ID, die ich von der Kategorie löschen möchte. Also hier, wie ich diese ID von der URL bekommen werde. Es ist sehr einfach. Ich sage, Punkt params Punkt-ID anfordern. Also hier ist dieser Name der gleiche Name wie, wie ich hier zugewiesen. So zum Beispiel, ich sage Kategorie ID. Ich, dann muss ich hier Kategorie ID setzen. Also, bevor wir sahen, dass wir nach der Leiche gefragt. Der Körper ist, wenn wir die Anfrage innerhalb des Körpers senden. Also hier haben wir Körper und wir senden in den Körper der Anfrage, die Daten. Aber jetzt werden wir sie senden oder wir werden die ID durch die URL senden. So wie wir hier sehen, dass diese Methode für uns ein Versprechen zurückgeben wird. Also werde ich dann sagen und dann wird das Versprechen
für mich ein Dokument und das Dokument zurückgeben , das die gelöschte Kategorie ist. Also sage ich hier, wenn es Kategorie gibt, wie wenn Sie sie finden, dann geben Sie einen Antwortpunkt, Statuspunkt oder sorry, 200 und Punkt JSON zurück. Und ich kann mein eigenes Objekt erstellen. Ich kann sagen, dass Erfolg wahr ist und eine Nachricht an den Benutzer. Also kann ich ihm nicht sagen, dass die Kategorie gelöscht wurde. Und dann, wenn es keine Kategorie gibt, wenn ich diese Kategorie sonst nicht finde, sage
ich Rückkehr, Antwortpunktstatus. Der nicht gefundene Code ist 404. Und dieser JSON, sage ich Erfolg, falsch. Also habe ich diese Kategorie nicht gefunden und nichts wird gelöscht. So kann ich sagen, in der Nachrichtenkategorie nicht gefunden. Aber was ist, wenn ein Fehler auf dem Server passiert ist? Zum Beispiel, nicht darüber, diese Kategorie nicht zu finden, sondern ein Fehler, wie Verbindungsfehler oder wenn ich die falschen Daten kaufe, falsche ID. Also kann ich das nicht mit dem Catch-Fehler sagen. Ich sage, dass bitte finden Sie für mich oder senden Sie mir eine Nachricht, dass ein Fehler im Server aufgetreten ist. Im Allgemeinen geht es nicht um gefundene Kategorie oder nicht gefundene Kategorie. Also hier sage ich Rückkehr Antwort, Punktstatus. Der Fehler ist im Allgemeinen 400. Also JSON. Und dann sage ich, Erfolg ist falsch. Und dann kann ich den Fehler an das Frontend an den Benutzer senden. Also lassen Sie uns jetzt diese API testen, das Löschen der Kategorie. Lassen Sie uns eine erstellen und löschen Sie den Server erneut starten. MPM Start. Wir sind mit dieser Datenbank verbunden. Dann lassen Sie uns zum Beispiel
neue Kategorie Computer erstellen . Ja, dieser Name, wir behalten ihn gleich. Und ich kopiere diese Kategorie. Und dann ändere ich diese Methode, um zu löschen. Also hier sage ich nach Kategorien, Ich sage die ID der Kategorie, die ich löschen möchte. Und dann drücke ich „Senden“. Kategorie Nizza wurde gelöscht. Wenn wir die Liste der Kategorien wieder erhalten, wenn Sie möchten, können
Sie hier die Geschichte dessen sehen, was Sie zuvor getan haben. Also lasst uns eine Liste von Kategorien bekommen. Wir haben immer noch die alte Kategorie, die schlechte Gesundheit, die auch gelöscht. Also kann ich hier gehen und sagen, diese ID löschen. Und dann, wenn ich zurückgehe, um zu bekommen, würde
ich leeres Array bekommen. Wir haben also keine Kategorie. Versuchen wir nun, nicht gefundene ID zu löschen. Zum Beispiel kann ich 444 hier sagen. Also, wenn ich es schicke, Ich bekomme Erfolg falsche Kategorie nicht gefunden. Das ist gut. Es ist genau die Botschaft, die wir wollten. Und lassen Sie uns auch einen Fehler machen. Normalerweise, wenn Sie Fehler beim Löschen der ID
ähnlicher Kategorie oder Objekt-ID machen möchten, hat dieses Format in MongoDB. Lassen Sie uns diese Formate ändern. Zum Beispiel mache ich es so kurz. Also, wenn ich schicke, bekomme
ich hier den Fehler. Der Fehler ist also 400 und dann sage ich, dass der Erfolg fällt und der Fehler passiert ist. Es geht um Objekt-ID, weil es falsch formatiert ist. Sie haben hier die Wahl, zwischen asynchronen, abwartenden Methoden oder mit dann zu treffen. Also die Versprechungen, sie können auf beide Arten sein. Du hast keinen Unterschied. Aber hier ist auch mehr geführt und hier ist kürzere Code. In der nächsten Vorlesung werden wir sehen, wie eine Liste
der Kategorien und auch eine einzelne Kategorie zu erhalten .
21. Kategorien und Kategorien:: In diesem Vortrag werden wir eine Liste der Kategorien und Kategorien Detail erhalten. Also zuerst werden wir die Kategorieliste machen. Wir haben es vorher schon in den vorherigen Vorlesungen gemacht. Also hier benutze ich getMethod und dann verwende ich find. Mit dieser Methode bekomme
ich die Kategorieliste. Und wenn es Kategorieliste gibt, dann werde ich bekommen, ich werde es per Antwort senden. Und wenn es nichts gibt, dann werde ich Fehler senden. Lassen Sie uns bearbeiten, bearbeiten Sie hier. Und wir können sagen, Staat 2s 200, dass wir die Kategorieliste gefunden haben. Lassen Sie uns nun eine Kategorie nach ID bekommen. Also werde ich hier sagen oder ändern. Es ist auch GET-Anfrage. Also wird dieses get die gleiche API akzeptieren, aber mit Parameter, wie wir zuvor gesehen haben. Also würde ich hier asynchrone Methode, Anfrage, Antwort, Rollenfunktion verwenden. Und dann werde ich eine konstante Kategorie machen. Und hier würde ich await Methode verwenden. Also werde ich hier die Kategorie genannt zu tun. Und es gibt eine Methode, die nach ID gefunden wird. Mit dieser Methode werde ich nach der ID von der Anfrage params dot ID fragen. Und ich werde überprüfen, ob es keine Kategorie gibt, dann sende die Antwort falsch oder Fehler. Wenn es Kategorie gibt, dann werde ich es mit dieser Antwort senden. Also hier habe ich es schnell gemacht. Wenn es keine Kategorie gibt, senden
Sie Antwort 500. Die Nachricht an den Benutzer, die besagt, dass die Kategorie mit der angegebenen ID nicht gefunden wurde. Und wenn es Kategorie gibt, dann werde ich es mit dieser Antwort senden. Testen wir das mit Postman. Die Kategorieliste ist also API-Version 1 Schrägstrich Kategorien und eine Get-Anfrage, die ich sende, aber ich habe keine Kategorie. Lasst uns eins hinzufügen. Ich habe die Post-Anfrage hier, und ich habe die Leiche bereits bei diesem. Und lassen Sie uns noch einen wie Gesundheit hinzufügen. Gesundheit. Das ist Ende. Also müssen wir jetzt zur GET-Anfrage zurückkehren. Rufen Sie es nochmal an, ich habe zwei Anfragen oder zwei Kategorien. Lassen Sie uns diese Kategorie nur nach ID erhalten. Also werde ich nur die ID nach der URL übergeben. Ich klicke auf „Senden“. Und ich habe die detaillierte Kategorie hier in meiner API-Anfrage bekommen.
22. Update: Willkommen zurück. Also, jetzt lasst uns die Kategorie aktualisieren. Aktualisieren der Kategorie bedeutet, dass wir entweder den Namen oder die Farbe oder das Symbol
aktualisieren. Die HTTP-Anfragen dazu werden Realtor dot put genannt. Also haben wir gesagt, ich kann die Daten in der Datenbank aktualisieren. Aber hier ist es eine Mischung zwischen dem Erhalten der Params und dem Erhalten des Körpers, der Params. Wir werden es verwenden, um die ID des Produkts oder die Kategorie zu erhalten, die wir aktualisieren möchten. Und dann in dieser Antwort oder dem Anforderungskörper, Wir werden das tun. Wir werden die Daten erhalten, die aktualisiert werden. Auf die gleiche Weise wird hier asynchrone Anfrage und Antwort eine ROM-Methode sein. Und dann werde ich die Kategorie in einer Variablen konstant. Und dann werde ich sagen, warten Sie auf Kategorie und finden Sie nach ID und Update. So kann ich das Produkt und dann unsere Kategorie finden, und dann aktualisiere ich es. Der erste Parameter dieser Methode ist also request dot powerapps dot ID. Also muss ich die ID übergeben, die ich vom Benutzer bekommen habe. Und der zweite Parameter ist das Objekt, in dem die aktualisierten Daten enthält. So Kategorie hat einen Namen und Symbol und Farbe. Also bekommen sie von der Anfrage Punktkörper, Punktname. Das Gleiche, genau wie wir eine neue Kategorie gepostet haben. Also werde ich es hier tun. Also, wenn ich Kategorie bekomme, dann ist alles in Ordnung und alles wurde aktualisiert. Wenn nicht, dann gibt es einen Fehler. Also werde ich diese Logik implementieren. Es ist genau das gleiche, wie wir es in der Post haben. Also werde ich das gleiche kopieren und es hier setzen. Also würde ich speichern, verbunden mit der Datenbank, und das ist der Zustand mit Postman. Also hier haben wir die Liste der Kategorien, die wir zuvor erstellt haben. Nehmen wir nun diese ID und ändern Sie diese Methode in einen Put. Und dann übergebe ich den Ausweis, den ich bekam. Und der Körper wird anders sein. Zum Beispiel, hier haben wir es Computer Elefant Computer 11. Lassen Sie uns es ändern, zum Beispiel, um durch Phonics zu wählen. Und das Symbol wird das gleiche elektronische sein, und die Farbe ist 55, wenn ich sende. Also, was ich hier habe, sind die alten Daten in Node.JS. Es gibt die Option, wenn Sie die alten Daten, die Sie senden, oder zum Beispiel, die die Kategorie Original oder die aktuellen Daten, die Sie aktualisieren, zurückerhalten möchten. Denn wenn wir hier gehen und auf get drücken, werden
wir in unserer Liste die aktualisierten Daten sehen. Wir werden hier haben, die Elektronik. Aber hier in der PUT-Anfrage haben wir die alten Daten zurückgegeben. In diesem Fall müssen
Sie in Node.JS einen Parameter an die Suche nach ID und Update übergeben, die aufgerufen wird, ist natürlich Objekt, und Sie können einen neuen durch sagen. Hier bedeutet es, dass ich die neuen aktualisierten Daten zurückgeben möchte. Speichern wir es und versuchen Sie es erneut. Also gehen wir zum Hafen. Lassen Sie uns es zum Beispiel in eine andere Sache ändern, zum Beispiel Schönheit. Und hier sagte ich „Schönheit“. Und ich klicke, dann habe ich die aktualisierten Daten bekommen. Wenn ich hier nochmal mit der Liste sage, habe
ich die alle Daten aktualisiert.
23. Eine neue Produkt REST API: In dieser Vorlesung werden wir sehen, wie man ein neues Produkt postet. Wie bei der Arbeit mit Kategorien. Wir werden auch ein neues Produkt veröffentlichen. Also müssen wir nur die Felder sammeln, die gleichen Felder, die vom Frontend gesendet werden. Fügen Sie sie dann als Produktmodell hinzu und speichern Sie sie dann in der Datenbank. Zuvor haben wir diesen Teil gemacht. Also lassen Sie es uns umgestalten und es mit unserem Modell und mit unserer Datenbank machen. Lassen Sie uns also unsere Kopie der Felder erstellen, die wir im Modell hatten. Also hier habe ich schon das Gefühl, dass die Felder nicht so viel Zeit brauchen, um sie zu füllen. Sie sind alle gleich. Sie kommen alle aus dem Körper. Lassen Sie uns auch hier den Code reduzieren, so dass wir async verwenden und warten können. Also hier werde ich async hinzufügen. Und dann lassen Sie uns nach unten gehen. Und wir sagen, wir haben, zum Beispiel, Produkt ist gleich warten und das Produkt, das wir erstellt das Produktmodell dot speichern. So haben wir hier jetzt das neue Produkt erstellt wird, nachdem es gespeichert wurde. Also lasst uns diesen Teil löschen. Und wir sagen hier, wenn es kein Produkt gibt, dann als Antwort zurückgegeben wird, ist der
Statuscode 400 oder 500, dass es wie ein interner Serverfehler ist. Und dann senden Sie eine Nachricht, dass das Produkt nicht erstellt werden kann. Und wenn alles gut läuft, dann geben Sie das Produkt zurück. Also, was ist das Besondere hier? Das Besondere hier, dass Sie das Produkt leicht posten können, aber was ist, wenn der Benutzer oder die Front und Mitte auf falsche Kategorie? Zum Beispiel, wenn ich eine Kategorie-ID und die Benutzer-ID von selbst erstellt habe, und diese ID der Kategorie existiert nirgendwo in der Datenbank. Also lasst uns zuerst überprüfen, ob es Kategorie existiert oder bekannt ist. Um das zu tun. Wir können das Gleiche, wir können tun, const Kategorie. Und in dieser Kategorie sagen wir warten auf ein neues Kategoriemodell. Und finden Sie nach ID. haben wir schon mal gesehen. Also sage ich Anfrage Punktkörper, Punktkategorie. Das Frontend in der Kategorie sendet also die ID der Kategorie, die ich dem Produkt hinzufügen möchte. Also, hier, wenn es keine Kategorie gibt, dann geben Sie den Antwortpunktstatus zurück, zum Beispiel 400, dass der Benutzer einen Fehler gemacht hat und er ungültige Kategorie sendet. Also im Allgemeinen haben wir alle Felder und der Benutzer muss die Kategorie senden. Wenn alles gültig ist, wird
es fortgesetzt und ihr Produkt normal hinzufügen. Versuchen wir das mit Postman. Also gehe ich zu Postman und erstelle eine neue API. Und der Link wird der gleiche sein. Http und Kategorien, nicht Kategorien. Wir brauchen Produkte. Also Stift, ich denke, jetzt können wir die Leiche hier hinzufügen. Und dieser Kumpel wird die Typreihe sein. Und diese Zeile ist kein Text, ist JSON. Das Frontend sendet also benachbarten Block an das Back-End. Also habe ich es bereits vorbereitet, keine Zeit damit zu verschwenden, dies zu schreiben. Also habe ich den Namen, die Beschreibung und lesen Beschreibung, Bild, Marke, Preis, Kategorie und die Kategorie. Ich habe die Zeichenfolge aus der Liste der Kategorien erhalten. Also, wenn Sie sich erinnern, haben
wir zwei Kategorien. Ich habe eins kopiert und es hier hinzugefügt. Und der Zählbestand ist 10. Bewertung ist für nicht so viel gutes Produkt. Und Kritiken. Die Anzahl der Bewertungen ist 22. Und wird es vorgestellt? Ja, es ist wahr. Also, wenn ich das Produkt schicke, bekomme
ich Antwort des Produkts und mit einer neuen ID des Produkts. Schauen wir uns die Atlas-Datenbank an. Hier ist Atlas und wir haben hier MongoDB, Ich erstelle eine Aktualisierung. So sehen wir hier, dass das Produkt bereits gepostet ist. Und wir bemerken, dass die Kategorie Objekt-ID hat. Versuchen wir nun, eine ungültige Kategorie zu senden. Also Lassen Sie uns entfernen, zum Beispiel dies und machen Sie es 80. Zum Beispiel. Senden Ich habe eine ungültige Kategorie erhalten. Und das ist Knochen ist 400 schlechte Anfrage. Das Besondere beim Posten eines Produkts ist also nur, wie wir es mit der Kategorie verknüpft haben. Sie müssen also jede Kategorie validieren, die bereits
in der Datenbank vorhanden ist und diese dann mit der Produktbuchung an die Post senden. Auf diese Weise haben Sie ein gültiges Produkt, das wirklich mit einer Kategorie verknüpft ist.
24. Erstelle ein Produkt und die Produkte: Als wir unsere API vorbereitet
haben, haben wir eine Anfrage für eine Liste von Produkten gestellt. So, wie wir hier sehen, wird
die Produktliste mit finden gespeichert. Und dann bringen wir es an die Front zurück, dass. Lassen Sie uns das also mit unseren Veränderungen versuchen. Mit dem Postboten. Ich sehe hier das Produkt, ich ändere den Beitrag zu bekommen. Und wir sehen, dass wir Array und Liste der Produkte haben. Das ist sehr einfach. Lassen Sie uns eine GET-Anfrage nur für ein Produkt erstellen. Es wird genau das gleiche sein wie die Liste der Produkte zu bekommen, wie wir zuvor gesehen haben. Wir müssen hier nur den ID-Parameter hinzufügen. Und lassen Sie uns diesen Namen in Produkt ändern. Und jetzt, wenn es ein Produkt gibt,
dann, wenn es kein Produkt gibt, sorry. Sie geben also einen Fehler zurück. Wenn ein Produkt vorhanden ist, senden Sie es erneut an das Front-End oder an die API. Aber was wir hier ändern müssen, ist nicht in Ordnung, sondern finden Sie nach ID. Und die ID, wie wir zuvor gesehen haben, stammt von der Anfrage, die von den oder,
sorry dot params gesucht wurde, weil wir die Parameter in der URL, die ID haben. Lass es uns speichern und versuchen. Jetzt. Ich kopiere zum Beispiel eine der IDs, die ich hier für Produkte habe, und ich setze sie hier nach dem Produkt. Also habe ich den Ausweis hier. Und ich sage, ich bekomme, dann habe ich die Produktdetails genau wie hier bekommen. Ich möchte hier erwähnen, dass zum Beispiel in der Liste der Produkte
manchmal, wenn ich eine große Liste von Produkten
habe, nicht alle Daten senden muss. Zum Beispiel, wenn ich im Frontend nur den Produktnamen und das Bild anzeigen möchte. Also habe ich eine spezifische API erstellt, die nur Liste der Namen und Bilder der Produkte
zurückgibt. Lasst uns das jetzt versuchen. Also immer, nachdem wir hier gefunden haben, finden Sie Methode, wenn ich auf Punkt klicke, dann werde ich eine Methode namens select finden. Es ist also genau so, als ob man eine Abfrage auswählt. So kann ich hier übergeben, welche Felder ich anzeigen möchte. Also sage ich zum Beispiel, ich brauche nur den Namen. Also sagen wir hier Namen in einer Zeichenfolge und speichern Sie es. Also hier werden wir das Produkt einzeln entfernen und wir erhalten eine Liste. Und wir sehen hier haben wir Liste der Produkte und nur die Namen, wenn wir wollen, zum Beispiel, Name und Bild. Also gehe ich zu dieser Zeichenfolge und füge nur Leerzeichen hinzu. Und dann das Feld, das ich anzeigen möchte, zum Beispiel, sage ich Bild, und dann speichere ich. Gehen wir zum Postman und wir würden Bild und Namen bekommen. Wir bemerken hier, dass es ID gibt, so dass wir diese ID auch ausschließen können. Wie wir das tun können. Wir gehen auch auf die gleiche Zeichenfolge, und wir haben die ID in diesem Fall. Also kann ich sagen, minus die ID. Wenn ich also auf Speichern klicke, gehe
ich zum Postman und schicke diese Anfrage. Ich habe jetzt eine saubere Auswahl. Auf diese Weise können
Sie Ihre APIs mit mehr Leistung und effizienter erstellen. So haben Sie keine Hindernisse in Erinnerungen für das Laden auf den Client. Sie benötigen eine Liste von Produkten. Also schick einfach, was du brauchst. So können Sie eine spezielle API dafür erstellen. So können Sie über diese API senden, was Sie wollen.
25. Category in der Produkt-: So wie wir zuvor gesehen haben, dass wir auf diese Weise ein einziges Produkt bekommen. Also, aber das Feld der Kategorie ist nur die ID. Wenn ich zum Beispiel das Produkt mit dem Kategorienamen anzeigen möchte. So habe ich zum Beispiel das Produktdetail, aber ich möchte auch ihren Namen zeigen. Es ist also nicht schön, eine weitere Anfrage für
die Kategorie zu erhalten und dann
diese beiden Anfragen zusammenzuführen und im Frontend zu zeigen, was ich brauche. Es gibt einen sehr schönen Weg, dies in MongoDB und Mongoose zu tun. Also, nachdem ich nach ID-Methode gefunden habe, wenn ich Punkt drücke, sehe
ich sie MSO dort ist bevölkert. Auffüllen bedeutet, dass jede verknüpfte ID oder Feld mit einer anderen Tabelle als Detail in diesem Feld angezeigt wird. Also, was Feld hat, zum Beispiel, ID, die mit einer anderen Tabelle verknüpft ist, wie wir zuvor in dem Schema gesehen haben wir hier haben, wir die Kategorie erstellt ist Objekt-ID und die Referenzkategorie. Also ist diese Kategorie tatsächlich ID, wie wir zuvor gesehen haben. Also sage ich, ein rührendes Bevölkern. Kategorie. Ich gehe zum Postboten und klicke dann auf Senden. Ich sehe, dass ich die Details der Kategorie bekommen habe. Also hier auf diese Weise, wenn ich eine GET-Anfrage für ein einzelnes Produkt erstelle, gehe
ich davon aus, dass ich auf einer Produktseite bin. Ich sende eine Anfrage, um die Produktdetails zu erhalten, und dann bekomme ich auch die Kategoriedetails, damit ich sie auch auf der Produktseite anzeigen kann. Es funktioniert auch mit der GET-Anfrage. So bekommen sie im Allgemeinen. Also, wenn ich hier alle Liste gefüllt haben möchte, so sage ich einfach die Kategorie aller Listen des Produkts füllen. Ich drücke Speichern, gehen Sie zu Postman. Ich bekomme Liste der Produkte und IC sie bereits bevölkert. Einige von ihnen, sie sind nicht mit einer Kategorie verbunden. Sie sind zuvor haben wir sie erstellt. Also hier, zum Beispiel, dieses Produkt, es hat eine Kategorie und es ist mit einer Kategorie in der Datenbank verbunden. Als Zusammenfassung,
wenn jemand Sie fragt, wie ich MongoDB-Tabellen wie relationale Datenbank verbinden kann, erstelle
ich nur ein Feld in der ursprünglichen Tabelle. Und dann sage ich in diesem Feld, dass ich eine Objekt-ID möchte, und es wird auf das Schema verwiesen, das ich für die andere Tabelle erstellt habe. Und wenn ich dann eine GET-Anfrage erstelle, sage
ich, füllen Sie dieses Feld aus. Dieses Feld muss also eine ID sein und dann wird es füllen, was mit dieser Tabelle zusammenhängt.
26. Eine Product API aktualisieren: Also lassen Sie uns jetzt unser Produkt aktualisieren. Aktualisieren eines Produkts entspricht genau der Art und Weise, wie wir eine Kategorie aktualisiert haben. Aber wie wir in der Post gesehen
haben, müssen wir nur die Kategorie validieren. Obwohl wir in Kategorien gehen, lassen Sie uns alle PUT-Anfrage kopieren würde genau die gleiche sein. Und dann gehe ich zum Produkt, füge
ich die neue Route hinzu. Und hier haben wir Produkt oder setzen ID. Und dann werden wir dasselbe tun,
was wir für die Kategorie getan haben. Also lasst uns dies in Produkt ändern. Hier ist Produkt, Produktmodell. Suchen Sie nach ID und aktualisieren Sie. Wir haben die Perimeter angeforderte Params-ID und ich bekomme die Felder von hier. Kopieren wir sie gleich und fügen Sie sie hier ein. So haben wir alle Bereiche des Produkts, neu. Ja, wir möchten das neue Produkt zurückgeben. Wenn kein Produkt vorhanden ist, senden
Sie eine fehlerhafte Anfrage oder einen internen Serverfehler und sagen Sie dann, dass das Produkt nicht optimistisch sein kann. Und auch, wenn alles in Ordnung ist, dann senden Sie das neue Produkt zurück. Wir fehlen erst jetzt den Teil, in dem wir die Kategorie validieren müssten. Also wieder hier bekommen wir das Gleiche hier. Und dann sage ich Paste Kostenkategorie, und dann frage ich nach Kategorie. Und wenn das keine Kategorie ist, dann senden Sie eine ungültige Kategorie an den Benutzer. Versuchen wir es jetzt mit dem Postboten. Ich gehe zum Postman, lass es uns kopieren oder wir haben die Felder schon hier. Damit wir das ändern können, können wir setzen. Und hier gebe ich die Idee, die ich ändern möchte. Also sage ich hier, zum Beispiel, diese ID. Und dann lasst uns es zu Produkt eins in neu ändern. Und hier auch Beschreibung Sie und Ford Beispiel. Aktualisieren wir den Preis 32. Und das war's. Wir senden die Post-Anfrage und wir haben eine Fehlermeldung erhalten, dass es sich um eine ungültige Kategorie handelt. Also lasst uns die richtige Kategorie machen. Also gehen wir hier zu den Kategorien API und holen die richtige und hier aktualisiert. Und sie senden, wir haben wieder das neue Produkt. So sehen oder hören wir das Produkt neu und die Beschreibung ist in U und mit dem neuen Preis. Also das einzige, was wir hier getan haben, dass wir auch, wir haben die Kategorie validiert. Also im Front-End, wie wir später sehen werden, dass wir Forum des Produkts haben werden. Wenn ich also auf Bearbeiten klicke, sehe ich die Felder bereits ausgefüllt. Also aktualisiere ich einfach die Felder, die ich brauche und schicke dann diese Anfrage erneut. Lassen Sie uns auch die Datenbank überprüfen, ob alles aktualisiert wird. Und dann bekomme ich die Produktliste. Und ich sehe hier das Produkt hat eine neue Beschreibung und einen neuen Namen. Und natürlich auch dann Ihr Preis.
27. Eine Product API löschen: Auch das Löschen eines Produkts ist die gleiche Art und Weise, wie wir eine Kategorie gelöscht haben. Aber hier möchte ich einen Punkt erwähnen, der sehr wichtig ist, um unsere API zu validieren. Lassen Sie uns zuerst auch kopieren, dass Anfragen aus Kategorien löschen. Ich nehme diesen und füge ihn dann hier in die Produkt-API oder Produktrouten ein. Wir ersetzen alles zu Produkt. Alles wird ersetzt. Also haben wir jetzt alle Staaten. Und versuchen wir es jetzt. Lassen Sie uns eine Liste von Produkten erhalten. Wird bekommen, haben wir alle diese Produkte. Lassen Sie uns die alten entfernen, weil sie leer sind. So können wir eine der IDs auswählen, diese
ändern, um sie zu löschen und diese Anfrage zu senden. Jetzt durchbläst und das Produkt wird gelöscht. Was ich hier erwähnen möchte, ist sehr wichtig. Was ist, wenn ich eine schlechte ID wie diese schicke? Ich werde sehen, dass ich einen Fehler erhalte, dass die Objekt-ID ungültig ist. Daher müssen wir auch die Objekt-ID in allen Anfragen validieren. Also in diesem Fall haben wir einen Fehler abgefangen. Aber hier in der PUT-Anfrage gibt es keine Aufforderung, den Fehler zu fangen. Wir überprüfen nur, ob wir ein Produkt bekommen oder nicht. Aber hier überprüft es die ID, also wird es irgendwie hängen. Also lassen Sie uns das in die PUT-Anfrage ändern und ein Problem in der, in der ID machen. Zum Beispiel entferne ich diesen und
schicke dann eine Anfrage und ich sehe, dass das Backend hängt. Deshalb bevorzuge ich mehr auf diese Weise, die Verheißung. So kann ich immer sagen, was ich sehen kann, was ich bekommen kann und was ich fangen kann. Aber wenn Sie auf diese Weise halten wollen, so können wir auch nicht nur die Kategorie validieren. Wir können die ID validieren. Wie können wir das machen? Die ID sollte der Typ der Objekt-ID sein, die in Mongoose gespeichert ist. Also hier werde ich zuerst anfangen, eine Konstante zu machen. Benötigen Sie Mungo. Dieser konstante Mungo. Es hat eine Methode, bei der ich es in der PUT-Anfrage verwenden kann. Also kann ich nicht sagen, dass Mongoose dot eine gültige Objekt-ID ist, also kann ich dann die Anfrage dot params dot ID übergeben. Also, wenn das gültig ist, dann fahre ich fort. Wenn nicht, gebe ich eine Antwort auf den Fehler zurück. Wie wir hier sehen, gibt
dies einen booleschen Wert zurück. Also lasst es uns in ein wenn setzen. Also sage ich hier, wenn Mongoose. Also werde ich auf diese Weise auch eine schlechte Anfrage senden und ich sage ungültige Produkt-ID. Und in diesem Fall wird
das Produkt oder die API für mich Fehler zurückgeben, wenn ich die ID weitergebe. Probieren wir es jetzt aus. Wir haben einen falschen Ausweis. Ich sehe, dass ich keinen Fehler zurückgegeben habe. Dies liegt daran, dass ich sagte, wenn gültig ist, dann Fehler zurückgeben, also sollte ich nicht gültig sein, also füge ich nicht hinzu. Gehen wir also wieder zurück und senden Sie die Anfrage erneut. Und ich erhalte Fehler ungültige Produkt-ID.
28. Products für Statistiken erhalten: Willkommen zurück. Manchmal möchte
ich im Admin-Panel dem Administrator zeigen, wie viele Produkte ich in der Datenbank habe. In diesem Fall möchte
ich eine API sehen, die mir alle Produkte
zurückgibt oder wie viele Produkte ich in der Datenbank habe. So wird es nur eine Zahl zurückgeben. Mungo hat eine Menge von Methoden. Basierend auf diesen Methoden können
Sie jede gewünschte Abfrage mit einer API zurückgeben. Zum Beispiel können
Sie in Mongoose aus dem Modellprodukt jede Methode haben, die Sie zurückgeben möchten. So können Sie Ihre eigene API basierend auf dem erstellen, was Mongoose Ihnen zur Verfügung stellt. Ich zähle die Produkte nicht. Ich möchte den Gesamtpreis meiner Produkte. Ich möchte zum Beispiel Summe oder den Preis der Bestellungen, den Gesamtumsatz, alle Statistiken, die ich in meinem Front-End haben möchte, zum Beispiel möchte ich Admin-Panel haben. In der Zukunft. Ich werde Ihnen das mit einigen Statistiken zeigen. Dazu müssen Sie API erstellen, die normalerweise verwendet wird, um das zu bekommen, was Sie von der Datenbank wollen. Also lassen Sie uns hier einen neuen hinzufügen, wie Router dot get. Es wäre natürlich getMethod. Und dann sagen Sie, zum Beispiel, Schrägstrich Anzahl. Die API wird also sein, nachdem Produkte gezählt werden. Also der zweite Parameter, wird
es das gleiche wie GetMethod sein. Also lassen Sie uns das gleich kopieren und einfach die Straße dort ändern. Also sage ich, get count, ich habe asynchrone Antwort und hier muss ich basierend darauf ändern, was Mongoose mir gibt. So erstellen wir eine Konstante, nennen es Produktanzahl. Und hier würde ich bis zum Ende löschen und zum Beispiel sagen, es gibt eine Methode Satz Zähldokumente. Also möchte ich sehen, wie viele Dokumente in diesem Modell oder in dieser Tabelle. Zählen Sie also Dokumente und dann wird es die Zählung oder als Rückruf zurückgeben. Und dann sage ich einfach die Zählung zurückgeben. Also bekomme ich die Zählung und gebe sie zurück. Und dann wurden die Zähldokumente für mich zurückgegeben, die Produktanzahl. Also hier sage ich, wenn es keine Produktanzahl gibt und dann einen Fehler an den Benutzer zurückgibt, sonst senden Sie die Produktanzahl. Das war's. Normalerweise geben wir einen JSON zurück. So zum Beispiel, ich sage hier, Produktanzahl ist eine Produktanzahl, oder zum Beispiel, ich sage nur die Anzahl der Produkte. Sie haben hier die Freiheit, einen beliebigen Namen zu wählen. Ich bevorzuge das hier. Lassen Sie uns testen, dass wir Mann angeblich, ich gehe zu Postman und dann sage ich Produkte GET Methode, bekommen Zählung. Und wir führen das aus. Und wir sehen, dass die Produktanzahl drei ist, also sind es wirklich drei. Lasst uns das überprüfen. Ja, ich habe die erste 1, zweite, die erste, die dritte 1. Das ist cool. So können wir nun dem Admin zeigen, welche Produkte oder wie viele Produkte er in seinem Vortrag hat.
29. Hole die ausgestellten Produkte: Eine weitere statistische Anfrage kann sein, zum Beispiel, ich möchte die vorgestellten Produkte, wie wir hier auf der Homepage dieser Website sehen. Wir sehen einige vorgestellte Produkte, die immer auf der Homepage angezeigt werden. So zuvor in Produkte Modell, hatten
wir etwas oder ein Feld namens gekennzeichnet ist. Ist gekennzeichnet hat einen booleschen Wert wie true oder false. Dies bedeutet, dass dieses Produkt auf der Homepage angezeigt werden soll oder nicht. Lassen Sie uns nun eine API erstellen, um nur die vorgestellten Produkte zu erhalten. Und um es komplexer zu machen, können
wir Konto haben. So kann ich zum Beispiel drei vorgestellte Produkte oder die letzten drei vorgestellten Produkte oder die letzten sechs vorgestellten Produkte erhalten. Lass es uns jetzt tun. Jede GET-Anfrage ist also so, als würde sie mit router.get beginnen. Also lassen Sie uns diese kopieren und unsere vorgestellte API erstellen. Oder anstatt zu zählen, werden
wir sagen, dass wir zum Beispiel
vorgestellte, vorgestellte Produkte erhalten . Also in Mongoose, müssen wir die vorgestellten Produkte finden. Nur, nicht alle Produkte, nur die vorgestellten. Also sage ich hier, Produkte Punkt finden. Und wie Sie sich vorher erinnern, hatten
wir eine Filtration. Wir haben gerade darüber gesprochen, aber wir werden sehen, wie man einen Filter mit dem Produkt baut. So wie auch immer, jetzt finde ich, dass es wie
Objekt akzeptiert und dann können Sie definieren, welche Felder der Wert sein müssen. So zum Beispiel, ich sage, ist gekennzeichnet muss ein wahr sein. Also alle Produkte, die durch vorgestellt hat, dann werde ich sie bekommen. Also hier bleibt alles gleich ist Tat nur das Objekt. Also hat ISA hier gerade für mich die Produkte zurückgegeben. Also sage ich hier Produkte, Produkte, Produkte. Lasst uns das jetzt mit Postman überprüfen. Ich gehe hierher, ich sage Get Funktion. Also senden wir und wir haben nur ein vorgestelltes Produkt, weil wir nur ein vorgestelltes Produkt in unserer API haben, also in unserer Datenbank. Also, wenn wir es hier überprüfen, so dass der erste hat, ist falsch. Die zweite ist auch falsch, aber die letzte wird angezeigt. Okay, so jetzt möchte ich nicht, um meine Homepage, die Produkt zum Beispiel vorgestellt fühlen, Ich habe wie diese Seite zum Beispiel, Ich habe 200 Funktionen Produkte. Also werde ich nicht nur, zum Beispiel, fünf Produkte. Um dies zu tun, können wir auch einige Einschränkungen für unsere API verdienen basierend auf dem, was Benutzer sendet. Zum Beispiel kann ich hier hinzufügen, wie wir zuvor gesehen haben, können wir jeden Parameter wie zuvor hinzufügen, wir fügen eine ID hinzu. Aber hier können wir zählen zum Beispiel hinzufügen. Und dann hier werde ich diese Zählung bekommen. Count ist gleich der Anforderung der Parameter, weil seine Parameter und Anzahl. Also, wenn es eine Anforderungspunktanzahl gibt oder eine Torque Params Punktanzahl anfordert, wenn der Benutzer etwas passiert, dann bekomme es. Wenn nicht, geben Sie 0 zurück. Also, das wie wenn hier. Also, wenn es mit der API Zählung Vergangenheit gibt, dann holen Sie es. Wenn nicht, geben Sie 0 zurück. Diese Zählung kann also dieser Wert oder dieser Wert sein. Es ist genau wie die IF-Anweisung. Also, wie werden wir diese Zählung verwenden? Es ist sehr einfach. Nachdem ich gefunden habe, was ich will, nur das vorgestellte Produkt, Ich sage Limit Count. Also lasst uns das mit Postman versuchen. Wir sagen, Sie werden vorgestellt. Und dann die Zählung, die ich zum Beispiel drei will, dann werde ich diese Anfrage senden. Wir werden nicht, dass es hängt. Es gibt also einen Fehler. Lassen Sie uns überprüfen, was der Fehler ist. Der Fehler besagt hier, dass nicht das Feld zum Analysieren von
Suchprodukten durch Ablehnungslimit drei, Return key false, gekennzeichnet wird. Also, warum passiert das? Limit Feld muss numerisch sein, aber wir haben es hier numerisch. Denn das, weil hier, diese Anforderung dot powerapps dot count gibt,
wie Sie hier sehen, eine Zeichenfolge zurück . Und das wird auch eine Zeichenfolge sein. Also haben wir hier einen String-Wert, keine Zahl, weil Limit nach einer Zahl fragt. Also, um es leicht zu einer Zahl zu ändern, legen Sie
einfach ein Plus hinter diesem Getränk. Jetzt, nachdem wir gespeichert und neu gestartet haben, fragt
der Server nach unserer API. Wir werden das vorgestellte Produkt erhalten.
30. Produkte nach Kategorie filtern und abrufen: Fortsetzung mit Filterung, Lassen Sie uns auch Filterung nach Kategorien. Wenn der Benutzer also einige bestimmte Kategorien auswählt, erhält
er die Produkte, die in dieser Kategorie sind. Und das ist eine normale Filterung in jeder Werkstatt. Also müssen wir irgendwie die GET-Anfrage anpassen oder eine
Produktlistenanfrage abrufen , um nach Kategorie zu filtern. Aber zuerst muss ich über etwas reden, das wir vorher erlebt haben. Zwei Arten von Parametern, die wir an das Backend senden können. Der erste ist der URL-Parameter. So kann der Benutzer jede ID senden, nachdem sie, Sie krank sind oder im body Parameter. Also haben wir Körper. Und in diesem Körper gibt es einige Parameter und auch mit der URL. So haben wir eine andere Art der Übergabe von Werten an das Backend, das Abfrageparameter genannt wird. Abfrageparameter werden immer verwendet. In diesem Fall
habe ich zum Beispiel URL-API, URL localhost, und dann übergebe ich den Abfrageparameter. Der API-Parameter wird wie folgt übergeben, so dass ich hier Nummer übergeben kann, aber der Abfrageparameter geht immer nach einem Fragezeichen. Also kann ich nicht immer sagen, dass ich hier eine Kategorie brauche. So wie wir vorher gesehen haben, können wir auch in der Find-Methode filtern. Also, nachdem wir das Modell übergeben und dann finden, können
wir Objekt wie zuvor übergeben. Wie wird dargestellt, wie eines des Feldes muss diesen Wert haben. Aber jetzt machen wir es als Kategorie. Also diese Suche müssen wir Kategorie und mit einer bestimmten ID haben, die vom Benutzer übergeben wird. Aber wie können wir es mehrere Werte machen, denn hier kann ich nur einen einzigen Wert haben. Es ist sehr einfach. Sie können einfach ein Array übergeben und automatisch wird Mungo erkennen, dass alle diese Werte in dieser Kategorie sein müssen. Und dann wird dies die richtigen Produkte zurückgeben, die diese besseren Kategorien haben. Also kann ich hier so etwas nicht sagen, erste Kategorie und zweite Kategorien-ID. Also lasst es uns hier wie etwas anderes machen. Also, um anders zu sein. Also, jetzt müssen wir irgendwie diesen Abfrageparameter nehmen und ihn in ein Array aufteilen und dann an diesen Fund übergeben. Es ist also sehr einfach. Ich sage, wenn es Anfrage dot, jquery dot Kategorien gibt, was diese ist,
dann lassen Sie es in einer Konstante speichern. Const, zum Beispiel, Filter. Und dieser Filter, werden wir den Wert Anforderung Punkt Abfrage Kategorien haben. Und wir werden diesen Wert aufteilen. Also teilen wir es durch Komma. Also sagen wir
split, teilen Sie die Zeichenfolge basierend auf Komma, und dann wird es für mich zu Elementen im Array zurückkehren, die eine Zeichenfolge und die andere ist. Also einfach, wir können diese Variable hier platzieren, weil wir sie als Array aufgeteilt haben. Aber wegen des Bereichs in JavaScript können
wir diesen Wert nicht zuweisen oder verwenden Wert aus diesem, wenn, weil andere Felder ihn nicht sehen können. Es ist also besser, die Variable hier zu erstellen und sie als leeres Array zu geben. Und diese Variable, ich gebe ihr die Teilung zu, und dann benutze ich sie hier. Versuchen wir das mit Postman. Also gehe ich hierher und ich habe versucht, das Produkt zu bekommen. Ich bekomme nichts, weil ich die API zwange, Kategorie zu haben. Also, wenn es nichts gibt, dann muss es eine Kategorie haben. Also lasst uns wie dynamischer Weg haben. Ich mache das als leeres Objekt. Und dieses leere Objekt wird zugewiesen und hat einen Wert, wenn Params und oder Abfrageparameter vorhanden sind. Dann sagen Sie, ich sage Kategorie ist das. Und dann dieser Filter, entferne
ich all dieses Objekt und dann wird es an die Geldstrafe übergeben. Also, wenn es leer ist, gibt es nichts. Also werde ich die ganze Liste des Produkts bekommen. Und wenn es Abfrageparameter gibt, würde
es mit Kategorie gefüllt werden, was unsere Bedingung ist, und es wird diesen Wert vom Benutzer haben. Versuchen wir es nochmal. Jetzt. Ich schicke diese Anfrage, nett. Ich habe alle Produkte vorher bekommen. Ich habe einige Produkte erstellt, zum Beispiel Produkt 1 und Produkt 2 und Produkt 3. Und sie haben aus verschiedenen Kategorien, zum Beispiel diese Kategorie und diese Kategorie. Also sage ich hier, Fragezeichen Kategorien. Und der Wert dieser Kategorien. Nehmen wir die erste Kategorie. Zum Beispiel dieses. Und ich schicke, und dann habe ich zwei Kategorien oder zwei Produkte. Also diese beiden Produkte, sie gehören zu dieser Kategorie. Lassen Sie uns noch einen hinzufügen. Zum Beispiel die zweite, indem Sie sie mit einem Komma aufteilen. Also sage ich hier. Also haben wir 123. Das erste Produkt stammt aus der zweiten Kategorie, und die anderen beiden Produkte, sie sind aus der ersten Kategorie. Und wenn ich nichts passe, dann wird es normal funktionieren, um alle Liste der Produkte zu erhalten. Hier hat der Benutzer also die Möglichkeit, die Abfrageparameter zu übergeben oder nicht. So kann
ich jetzt auf meiner Homepage zum Beispiel
einige Banner haben, die einige bestimmte Produkte aus
Kategorien anzeigen , und auch den Benutzer, wenn er auf die Produktseite geht, können
Sie diese Produkte auch filtern -Kategorie. Zum Beispiel wird es so etwas wie Checkboxen oder zum Beispiel einige Pillen sein. So kann er darauf klicken und
die Kategorien auswählen , für die Sie die Produkte anzeigen möchten.
31. Schlüssel zu "id" ändern – mehr Frontend freundlich: Wenn ich ein Produkt oder eine Liste von Produkten bekomme, sendet
Mongoose oder MongoDB das Feld mit der richtigen Art, wie ich es gemacht habe. Aber die ID, es hat ein kleines Problem. Es hat diesen Unterstrich. Ich möchte, dass die ID nur ID als Schlüssel ist, also kann ich sie überall in meinen Anwendungen verwenden, nicht nur zum Beispiel
für die Anwendung, die wir in diesem Kurs machen. Also kann ich dieses Backend mit anderen Anwendungen verwenden, die normalerweise die ID nur als Schlüssel akzeptieren. Irgendwie. Mungo, wir können auch diese ID kopieren und ein Feld namens ID nur ohne Unterstrich erstellen. Also, wie geht man das? Das nennt man Virtuals. Mit diesem Produktschema, das wir zuvor erstellt haben, können
wir immer eine virtuelle ID erstellen. Und diese virtuelle ID wird ein get haben. Und dies wird von der ID stammen, die im Produktschema übergeben wird. Dies ist also ein Weg, wie man es macht und Hex-String, weil wir Hexa-Strings für die ID haben, die Objekt-ID genannt wird. Und dann müssen wir eine Option für das Produktschema aktivieren. Und sagen Sie, wenn ich einen Wert an das Frontend oder an die API senden möchte, aktivieren
wir die Virtuals, weil dies ein virtuelles Feld ist. In jedem Schema können
wir diese zwei oder vier Zeilen oder zwei Methoden hinzufügen. Und dann haben wir den Ausweis. Also, wenn wir es jetzt mit dem Postboten versuchen, kann ich schicken. Und ich werde sagen, dass ich die ursprüngliche ID und die ID haben werde, die ich will. Also Mall Front-End freundlich, ich kann diese ID direkt ohne diesen störenden Unterstrich verwenden.
32. Einführung: Jetzt kommen wir zum letzten Modul an, das sich auf den Rücken und die Entwicklung bezog. Wir müssen jetzt die Bilder mit unserem Produkt hochladen, wie wir bereits gesehen haben, enthält
das Produkt zwei Felder. Einer von ihnen ist ein Hauptbild und das zweite Feld sind die Bilder. Also, wo wird mehr Beschreibung über das Produkt wie eine Galerie Bilder sein? In diesem Modul werden
Sie sehen, dass der Hauptschritt die Installation der Walter-Bibliothek ist. Library ist eine berühmte Bibliothek, die verwendet wird, um Dateien auf den Server mit Node.JS hochzuladen. Und im zweiten Schritt werden
wir die beste Konfiguration für unsere e-Sharp herausfinden, weil wir diese Bibliothek konfigurieren müssen ,
um die Dateien zu verwenden und auf unseren Server hochzuladen. Die dritte, werden wir sehen, wie man das Ziel verwendet und die Dateinamen hochgeladen. Immer wenn der Administrator eine Datei oder ein Bild hochlädt, muss
er den Dateinamen angeben. Aber nein, wir können das nicht für den Admin oder für den Benutzer tun. Wir müssen nicht zulassen, dass er die Akte nennt. Sie können jede Datei hochladen und sie wird in unserem Server codiert werden. Verwendung von Postman ist auch sehr wichtig für unseren Fall hier, um den Bild-Upload zu testen.
Wir werden sehen, wie man den Bild-Upload mit
einem Postboten testen kann, indem man eine Datei oder mehrere Dateien hochlädt. Und wir werden dem Benutzer nicht erlauben, etwas hochzuladen. Wir brauchen ihn, um nur bestimmte Arten von Bildern hochzuladen, wie mit PNG-Erweiterung für J Beck. Und natürlich, das alles für eine einzige Datei getan. Jetzt müssen wir die Bibliothek erweitern, um es möglich zu machen, mehrere Dateien hochzuladen. Und es werden mehrere Dateien benötigt, damit wir viele Bilder für die Produktgalerie hochladen können. Und schließlich werden wir sehen, wie man dieses Produkt mit
den Bildern und den Galeriebildern holt , um sie im Frontend zu sehen. Natürlich werden wir nur die URL des Bildes abrufen. Ich hoffe, Sie werden dieses Modul genießen und sehen Sie in der nächsten Vorlesung, wo wir beginnen, Mörtelbibliothek zu installieren.
33. Benutzer-Modell und Schema: Wie wir in unserem Benutzermodell zuvor hatten, sehen
wir, dass wir einen Namen und E-Mail und Passwort benötigen, etc. Also lassen Sie uns unser Benutzerschema genau so erstellen, wie wir es in diesem Modell haben. Auf der rechten Seite. Ich habe sie schon geschrieben, damit wir schnell über sie gehen können. Und dann können Sie aus dem Code implementieren, den ich in die Ressourcen hochladen werde. Zunächst ist der Name des Benutzers eine Zeichenfolge und es ist erforderlich. Zweitens ist die E-Mail eine Zeichenfolge und auch true erforderlich. Und auch der Passwort-Hash. Wir haben gesagt, wir werden das Passwort in der Datenbank gehasst speichern. Es wird eine Zeichenfolge sein und es ist erforderlich. Die Telefonnummer des Benutzers wird auch eine Zeichenfolge oder eine Nummer sein. Und mit dem Wahren und es ist erforderlich. Hier werden wir den Benutzer identifizieren, wenn er Admin im Shop ist oder nein. Es wird also ein boolescher Wert sein und der Standardwert ist false. Die Adresse, die für den Versand der Bestellung des Benutzers verwendet wird. So können wir eine Straße wie eine Zeichenfolge verwenden, und der Standardwert ist ein leerer Wert. Wohnung ist auch String. Postleitzahl ist eine Zeichenfolge, Stadt und Land. Und am Ende haben wir ein Benutzerschema, wie wir es zuvor mit den Produkten getan haben, haben wir eine virtuelle ID erstellt. Also würden wir ID auf diese Weise bekommen, nicht auf diese Weise. Es ist also benutzerfreundlicher oder front-End-freundlich. So können wir es im Frontend als normale ID verwenden, um Benutzerdaten zu holen oder einen Benutzer zu identifizieren. Und hier aktivieren wir die Virtuals für das Schema. Und hier der normale Export des Moduls und des Schemas. Hier geht es also um das Benutzerschema. Wir werden jetzt umziehen, um einen Benutzer oder registrierten Benutzer in unserem Webshop zu erstellen.
34. Eine neue User REST API: In dieser Vorlesung werden wir sehen, wie Sie einen neuen Benutzer als jede Post-Anfrage registrieren oder posten. Wir können die Benutzerdaten auch im Text
der Anfrage veröffentlichen und sie dann in die Datenbank einreichen. Also, um es schnell zu machen, Lassen Sie uns eine der Post-Anfrage kopieren, die wir vor haben, zum Beispiel, die Kategorie. Also lassen Sie uns dieses kopieren und fügen Sie es dann in
unser Benutzerrouten-Modul ein und beginnen,
die Körperanfragen basierend auf dem Modell hinzuzufügen , das wir vorher für den Benutzer hatten. Also lassen Sie uns alle diese Felder so fühlen, als hätten wir sie vom Frontend wie gewohnt und fügen Sie sie hier in unsere Anfrage ein. Also zuerst
werde ich dies anpassen, um Benutzer zu sein. Und hier würden wir Benutzermodell verwenden. Und dann werde ich warten, um den Benutzer zu retten. Und wenn es keinen Benutzer gibt, antwortet
dann mit der Fehlermeldung, dass der Benutzer nicht erstellt oder registriert werden kann. Also lassen Sie uns die Felder hinzufügen, die wir jetzt brauchen. Also werde ich diese beiden Bildschirme trennen und dann werde ich meine Felder hier hinzufügen. Also Name, der gleiche Name. Und E-Mail wird E-Mail sein. Und hier die Leichname E-Mail. Lassen Sie uns schnell für den Rest tun. Nun wird unser neues Benutzermodell so aussehen. Also habe ich alle Schlüssel oder alle Felder, die ich sie aus dem Schema bekommen habe. Und dort nahm ich an, dass ich das aus dem Körper der Anfrage bekomme. Also dieser Kumpel und die Anfrage wird vom Postboten oder vom Frontend kommen. Wie wir als nächstes sehen werden. Versuchen wir das jetzt mit einem Postboten. So werden wir zum Beispiel ein Objekt erstellen, und ich werde einen Benutzer und einen Passwort-Hash und all diese Informationen in diesem Objekt zuweisen. Also, was wird der volle Weg dafür sein? Es wird die API-Route und dann Benutzer sein. Warum? Da in der app.js, hatten
wir vorher, alle APIs Routen sind hier definiert. Also sage ich AP US Produkte und dann gebe ich die Produkte Routen. Und dann hier werden wir Benutzer haben. Also in unserer API, werden
wir Benutzer verwenden. Also gehen zum Front-End, Lassen Sie uns eine der APIs kopieren wir vor und fügen Sie es hier. Und hier. Anstelle von Produkten werden wir sagen, Benutzer. Das ist perfekt. Also lassen Sie uns einen Beitrag hinzufügen. Und dann im Körper werden
wir eine Reihe hinzufügen. Und der Typ dieser Zeile ist JSON, da der Benutzer die Daten in einem JSON-Format sendet. Und dann lassen Sie uns unser Objekt hier erstellen. Also würde ich den Namen sagen, und ich gebe jedem Namen zu, zum Beispiel James, und das Gleiche für den Rest. Also lasst uns sie fühlen. Also haben wir hier das Passwort-Hash, die Telefonnummer, der Administrator, Ja oder nein, Wohnung, Postleitzahl, Stadt und Land. Also in diesem Fall werden
wir einen Benutzer haben, der diese Eigenschaften hat. Wir sollten das Passwort nicht so setzen. Also müssen wir es hash, wie wir in der nächsten Vorlesung sehen werden. Also stelle ich jetzt die Daten und ich bekomme all diese Informationen. Also haben wir hier Namen als Benutzername, und die Daten und alle Informationen, die wir eingegeben haben. Und auch die API reagierte mit ID und Unterstrich-ID. So hat der Benutzer in der Datenbank erstellt. Schauen wir uns unsere Datenbank auf Atlas an. Wenn wir also zu unserem Cluster gehen und dann Sammlungen, werde ich auf unsere Datenbank zugreifen, die Benutzer oder E-Shop-Datenbank und die Tabellenbenutzer ist. Und wir werden sehen, dass der Benutzer hier erstellt wird. Ich denke, ich habe ein Feld verpasst, das nicht mit der API gesendet wird, also müssen wir es hinzufügen. Also lassen Sie es uns hier hinzufügen, die Straße ist. Also haben wir drei es auch, und es ist 3s. Zum Beispiel 100. Ich werde verschiedene Benutzer mit unterschiedlichen Namen hinzufügen, um unsere Datenbank zu fühlen. Also sage ich James, zum Beispiel, ich würde Tom und Tom hier sagen. Und das gleiche Passwort, Nehmen wir an, er hat 777 hier und die gleiche Adresse zum Beispiel. Und wir werden senden, senden. Wir werden auch das gleiche haben, dass auch ein anderer Benutzer wie Mike. Wir werden hier haben, Mike kleine m. Und auch die gleichen Informationen wie sagen wir hier es 88. Und die Straßennummer, zum Beispiel, fünf, die Wohnung ist 4. In diesem Fall hatten wir
in unserer Datenbank drei Benutzer. Wie wir hier sehen werden. Ich aktualisiere die Seite. Und wir werden hier sehen, dass wir drei Benutzer haben.
35. Das Benutzer-Passwort Hashing: Das Speichern des Passworts, in diesem Fall als Klartext ist nicht sicher, denn wenn jemand irgendwie unsere Datenbank bekommen
hat, wird er die Liste aller Passwörter aller Benutzer in unserer Datenbank sehen. Es ist also besser, es irgendwie zu hash oder zu codieren damit jeder nicht verstehen kann, was das ist, das echte Passwort hinter diesem Hashing oder es codiert. Um dies zu tun, gibt es eine Bibliothek, von NodeJS zur Verfügung gestellt wird. Es nennt sich die js entschlüsseln. Wir können es hier in einem neuen Fenster installieren. So MPM installieren JS gegriffen werden. Und ich werde diese Bibliothek installieren und sie dann in meine Anwendung importieren. Also würde ich sagen, verursacht, gegriffen
werden und JS entschlüsseln müssen. Also, wie werden wir diese Bibliothek verwenden? Also werde ich den Benutzer oder das Frontend nicht nach einem Passwort-Hash fragen. Ich werde nach einem normalen Passwort fragen, aber intern in meinem Backend werde ich dieses Passwort verschlüsseln. Also hier werde ich sagen, sei Kryptpunkt, Hash-Synchronisation. Und dann fragt Hash Sync nach einer Zeichenfolge und auch etwas namens Salz. Das Salz ist zum Beispiel wie zusätzliche,
extra geheime Informationen, so dass jede Person diesen Hash nicht entschlüsseln kann. So zum Beispiel, werde ich hier mein Geheimnis hinzufügen. Sie können jedes Geheimnis hinzufügen. Zum Beispiel kannst du meine Zigarette sagen. Sie können alles hinzufügen. Ich werde hier hinzufügen, zum Beispiel, Nummer, es ist 10. Und ich werde den Benutzer nicht nach einem Passwort-Hash fragen, aber ich werde ihn einfach nach einem Passwort fragen. Versuchen wir das jetzt und lassen Sie uns sehen, was der Server oder das Backend uns nach der Verschlüsselung des Passworts antworten wird. Also hier, lassen Sie uns ein anderes Benutzerpasswort erstellen, nicht Passwort-Hash. So wird es auch von eins bis sechs sein. Und er hat ein paar Informationen, wie wir es vorher hatten. Machen wir ihn zum Beispiel nicht zum Admin. Und ich werde senden, und wir werden hier den Passwort-Hash wie folgt sehen. Es ist also nicht genau das, was der Benutzer gesendet hat. Also werden wir irgendwie verwenden, wenn wir uns anmelden, wir werden diesen Hash mit dem Passwort vergleichen, das der Benutzer verwendet hat, als er sich angemeldet hat. Dies wird auch durch Entschlüsselung Bibliothek getan werden. So haben wir jetzt ein sicheres Back-End oder ein sicheres Objekt
des Benutzers, so dass niemand diese Informationen lösen oder entschlüsseln kann.
36. Den Get du die Benutzer und die Liste von and ohne Passwort, die: Wie wir bereits gesehen haben, dass wir GET-Anfrage erstellt haben, um die Liste der Benutzer zu erhalten. Und auch können wir das Gleiche erstellen, um einen einzelnen Benutzer zu bekommen. Also kopieren Sie es aus Kategorien auch. Und ich werde diese Kategorie Benutzer ändern. So haben wir auf diese Weise eine Liste von Benutzern und erhalten Einzelbenutzer. Versuchen wir das mit einem Postboten. Ich gehe hierher und ich bekomme keinen Benutzer, der seine ID hat. Es gibt so und ich werde keine Liste von Benutzern. Dann bekomme ich sie so. Wir haben hier ein Sicherheitsproblem. Ich möchte die Liste der Benutzer mit ihrem Passwort-Hash nicht senden. Es ist also besser, die API oder die API-Felder ohne Passwort-Hash zu senden. Wie können wir das machen? Zuvor haben wir gesehen, dass wir einige Teile aus unserer API oder einigen Feldern ausschließen können. Wie wir das tun, nachdem wir die Find-Methode aufgerufen
haben, setzen wir Select und dann drücke ich Minus, und dann kann
ich mit Minus angeben, welches Feld es ausgeschlossen werden soll. Zum Beispiel, hier in diesem Fall, werde ich Passwort-Hash sagen. Und wenn ich dann die API aufrufe, werde ich sehen, dass ich Felder ohne Passwort-Hash habe. Lassen Sie uns das auch für den einzelnen Benutzer tun. Ich werde hier wählen, oder wir können das direkt kopieren. Es funktioniert auch mit find by ID, wie mit find und width, find by id. Speichern Sie es. Probieren Sie es aus. Und lassen Sie uns zum Beispiel diesen Benutzer mit dieser ID bekommen, die ich hier gepostet habe. Und wir sehen, dass wir diesen Benutzer ohne Passwort-Hash bekommen haben. Wir können auch, wenn Sie eine Liste der Benutzer erhalten, zum Beispiel im Admin-Panel meiner Anwendung, möchte
ich nur den Namen des Benutzers und zum Beispiel
Telefonnummer und E-Mail anzeigen . In diesem Fall können
Sie also eine API erstellen, die nur diese Felder enthält. So können Sie nicht mit Minus auswählen, aber Sie können Name, Telefon, E-Mail sagen. Also dann erhalten Sie nur diese Felder mit dieser Anfrage dieser API. Also lasst uns sie holen. Wir haben nur Namen, E-Mail und Telefon. Dies ist sehr hilfreich, wenn Sie möchten, zum Beispiel, wenn Sie eine Schnabelliste haben und dann diese große Liste, Sie wollen es reduzieren. Sie möchten also nur bestimmte Felder auswählen, die Sie im Frontend verwenden möchten. Lassen Sie es uns zurück zu Passwort-Hash setzen. Also möchte ich nur den Passwort-Hash ausschließen und eine Liste der Benutzer mit all ihren Details erhalten.
37. Melde eine User REST API und Erstellen eines Token: In dieser Vorlesung werden wir sehen, wie sich der Benutzer einloggen und die APIs verwenden kann. Also ist er verpflichtet, seine E-Mail oder ID und
Passwort zu haben und dann irgendwie mit API an den Authentifizierungsserver zu senden. Und der Authentifizierungsserver antwortet mit GW t, dem JSON Web Token, und sagt, dass der Benutzer authentifiziert ist und in der Lage ist, die gesicherten APIs zu verwenden. Fangen wir an, den ersten Teil zu machen. Wir müssen also eine Post-Anfrage erstellen, bei der eine Person seinen Benutzernamen und sein Passwort an den Server senden
kann. Lassen Sie uns zuerst eine Post-Anfrage in unserer Benutzer-API erstellen. Also werde ich sagen Router dot post, und dann wird der Pfad Login sein. Und dann speichern wir eine asynchrone Methode, die Anfrage und die Antwort. Und wir werden den Rückruf hier haben. Lassen Sie uns den Login per E-Mail machen. So werden wir in ihrer Antwort durch die E-Mail und das Passwort erwarten. Also zuerst müssen wir wissen, ob dieser Benutzer existiert. Ich habe wirklich einen Benutzer mit dieser E-Mail. Also zuerst werde ich Konstante erstellen, ihm Benutzer geben. Und dieser Benutzer wird eine Gewichtsmethode haben, genau wie wir es vor dem Benutzer gemacht haben und eine finden. Ich möchte Benutzer per E-Mail finden. Also werde ich hier sagen, finden Sie einen, und dann wird es Objekt sein. Ich kann zuweisen, nach welchem Feld ich den Benutzer durchsuchen möchte. Zum Beispiel möchte ich per E-Mail suchen. Also hier werde ich sagen E-Mail. Und die E-Mail wird von der Anfrage dot body dot email kommen. Also hier habe ich den Benutzer bereits, die an die E-Mail geschickt werden, um in zu schauen. Also, wenn ich einen Benutzer bekomme oder wenn ich keinen Benutzer bekomme, werde ich einen Fehler senden. Also werden wir tun, dass Rückgabe Benutzer oder Antwortpunktstatus für 100 Punkte Ende. Und dann werden wir sagen, dass der Benutzer nicht gefunden wurde. Andernfalls werde ich in der Antwort senden, dass der Benutzer gefunden wurde. Und es wird im Sandobjekt wie Benutzer sein. Lassen Sie uns das ausprobieren, um sicherzustellen, dass das funktioniert. Also hier brauche ich eine Post-Anfrage, ich entferne diese, und hier werden wir einen Login haben. Und dann brauchen wir das nicht alles. Wir brauchen nur die E-Mail, wie wir gesagt haben, und das Passwort des Benutzers. Also hier werde ich Passwort haben. Zum Beispiel, sagen wir 1,
2, 3, 4, senden Sie es. Und dann werden wir diesen Benutzer wirklich mit dieser E-Mail existieren. Lassen Sie uns Fehler in der E-Mail machen. Sie machen zwei, zum Beispiel, ich bekomme den Benutzer nicht gefunden. Also sind wir jetzt auf dem richtigen Weg. Also haben wir den Benutzer gefunden, den wir einloggen möchten. Um sich einen Benutzer anzumelden, müssen
wir das Passwort, das er
eingegeben hat, und mit dem Passwort vergleichen , das bereits in der Datenbank vorhanden ist. Aber wir haben bereits ein Hash-Passwort. Also müssen wir
dieses Passwort irgendwie unglücklich oder entschlüsseln und es dann mit dem Passwort vergleichen, das Sie vom Benutzer gesendet haben. Und dann sage ich, okay, du hast Recht, du bist authentifiziert. Nachdem ich also sicher bin, dass ich einen Benutzer in meiner Datenbank mit dieser E-Mail
habe, möchte ich überprüfen, dass, wenn es einen Benutzer gibt, den wir vorher haben und mit Vergleichssing entschlüsseln, ich kann nicht zwei Passwörter mit dem Hash vergleichen. Also werde ich sagen, dass Anfrage dot body dot password, das vom Benutzer gesendet wird, und dann vergleichen Sie es mit dem Benutzer dot Passwort Hash, wie der Benutzer, den ich mit seinem Passwort-Hash gefunden. Also, wenn diese Komprimierung erfolgreich ist, werde
ich sagen, zum Beispiel, an das Backend oder an das Front-End gesendet. Wir werden sagen, zum Beispiel, Antwortpunktstatus, zum Beispiel, zu einem 100 Punkt senden Benutzer. Sonst. Wir löschen diesen Teil. Und wir sagen, zum Beispiel, mit 400 und sagen, dass das Passwort falsch ist. Probieren wir das aus. Und hier, zum Beispiel, habe ich dieses Passwort, Benutzername. Ich würde sagen, dass das Passwort falsch ist, aber erinnern Sie sich, dass wir das Passwort auf diese Weise von eins bis sechs haben und der Benutzer wurde authentifiziert. Also, wenn das Passwort falsch ist, bekommen
wir das Passwort falsch ist. So kommen wir jetzt zu dem wichtigen Teil. Also haben wir vorher gesehen, dass der Server mit JSON-Web-Token reagiert. Also, von wo aus ich JSON-Web-Token im Back-End erhalten werde. In Node.JS gibt es eine Bibliothek namens JSON Web Token. Also müssen wir diese Bibliothek installieren. Also gehe ich in das andere Fenster, das ich vier für die Installation hatte, würde
ich sagen npm I. Und dann JSON Web Token. Installation dieser Bibliothek gibt mir die Möglichkeit, JSON Web Tokens zu verwenden. Also lassen Sie uns es in unseren Konstanten oder Importen haben, können wir sagen, okay, College AVT erfordert JSON-Web-Token. Also kann ich diese Variable jetzt oder Konstante verwenden, um das JSON Web Token zu generieren. Wie macht man das? Also, wenn der Benutzer authentifiziert ist und alles gut läuft. Also werde ich sagen const Token. Und dann würde ich diese Bibliothek JSON Web Token verwenden, dieses Zeichen gibt es eine Methode dort. Und diese Methode akzeptiert das Objekt,
Objekt mit einer Nutzlast und Geheimnis, die geheime oder private Schlüssel ist. Wir werden über das Geheimnis sprechen. Also dieses JVP, diese Zeichen, wie wir vorher gesehen haben, es fragt nach Objekt. Und dieses Objekt wird haben, zum Beispiel, Sie können nichts passieren. Ich kann zum Beispiel Benutzer-ID sagen. Und die Benutzer-ID wird zum Beispiel die
Benutzer-Punkt-ID haben , den Benutzer, den ich hier bekam, und mit seiner ID. Hier können Sie also die Daten, die Sie wollen, mit dem Token übergeben. Wir werden sehen, wie man das Token im Frontend auflöst. Und auch, wie wir das Token in der Authentifizierungs-API vergleichen können. Und hier im zweiten Parameter müssen
wir ein Geheimnis übergeben. Secret ist so etwas wie zum Beispiel
ein Passwort, das verwendet wird, um Ihre Token zu erstellen. So kann es eine beliebige Zeichenfolge sein. Zum Beispiel werde ich sagen, zum Beispiel, Zigarette. Und danach gibt es Optionen. Und in diesen Optionen können
wir dem Token einige Optionen hinzufügen,
wie das Ablaufdatum, das wir später sehen werden. Und in ihrer Anfrage, die Erfolg sendet, werden
wir den Benutzer mit seinem Token senden. Also werde ich sagen, Benutzer und Benutzer senden, zum Beispiel,
E-Mail, die nur die E-Mail und das Token senden. Auf diese Weise erhält
der Benutzer das Token im Front-End und kann es verwenden, um auf die API zuzugreifen. Probieren wir das aus. Also gehe ich zum Postboten. Ich werde Login verwenden. Auch hier haben wir das Passwort falsch. Lassen Sie uns das richtige Passwort eingeben. Und dann bekam ich die E-Mail und ein Token. Also dieses Token wird durch das Geheimnis geschaffen, das wir hier haben. So kannst du machen, was du willst. Und dieses Geheimnis weiß niemand davon. Also kann er nicht jemand ein Token
wie mit den gleichen Token erstellen , die in Ihrem Webshop verwendet werden. In diesem Fall sendet
kein Benutzer mit der API, zum Beispiel ein Token, und dann wird es die Antwort haben, die richtige Antwort, weil er das Geheimnis nicht hat. Wir werden sehen, wie man das Token mit dem Geheimnis auflöst, das wir
erstellt haben , damit der Benutzer die richtige Antwort erhalten kann. Also, wenn Sie sich erinnern, wir haben hier die Umgebungsvariablen. Also hier können wir unser Geheimnis setzen. Zum Beispiel kann ich hier geheim sagen. Mein Hund ist nett. Also sage ich hier geheim. Und wir werden es hier benutzen. Wir werden sagen, konstant. Und dann sagen wir, Geheimnis ist Prozesspunkt-Umgebungsvariablen, dot secret, die ich hier erstellt habe. Also lassen Sie uns dieses Geheimnis anstelle der hartcodierten Zeichenfolge übergeben. Lassen Sie uns noch einmal überprüfen, um sicherzustellen, dass alles gut funktioniert. Also haben wir einen neuen Doc. Manchmal sehen Sie also, dass Sie, wenn Sie am nächsten Tag in eine Website gesperrt sind, automatisch abgemeldet werden. Dies geschieht, weil dieses Token abgelaufen ist. So hat der Server eine gewisse Ablaufzeit. Wenn Sie also versuchen, dieses Token zu verwenden, wird
der Server Ihnen antworten, leider ist dieses Token abgelaufen. Wie kann ich die Ablaufzeit einstellen? Der dritte Parameter dieses Sinusoids, es hat Optionen. Und diese Optionen können eine von ihnen sein. Beispiel: ablaufen in, ablaufen in, Sie können einen Tag,
eine Woche, einen Monat angeben . Ich will einen Tag. Ich sage ein d. Wenn ich eine Woche will, Ich sage 1 w. Also normalerweise, Schauen wir uns, zum Beispiel, für unseren Web-Shop, wir haben das Token für einen Tag. Wenn ich nach einem Tag wieder komme, um eine API zu verwenden und ich das abgelaufene Token zu laden, dann wird der Server sagen, sorry, Sie können diese API nicht verwenden, da sie abgelaufen ist. Lass es uns retten. Und wir werden in der nächsten Vorlesung sehen, wie wir unsere APIs schützen können. Daher können sie keinen IPI nur verwenden, wenn er ein Token hat.
38. Schutz der API und der Authentisierung JWT Middleware: Wir haben vorher gesehen, wie der Benutzer jetzt das Token hat. Jetzt kann er es verwenden, um auf die Daten oder unsere APIs zuzugreifen, aber wie wir unseren Server schützen können. So kann niemand die API ohne Token verwenden. Wie wir zuvor in unserer app.js sahen, hatten
wir eine Middleware. Und die Middleware überprüft alles und
geht zum Server, bevor es ausgeführt wird. Also hier in diesem Punkt möchte
ich überprüfen, ob der Benutzer authentifiziert ist oder nicht. Die Sequenz. Um das zu tun, normalerweise, erstelle
ich in meinem, zum Beispiel, ich möchte einen Helferordner erstellen. Und im Helferordner werde ich eine neue Datei erstellen, sie zum Beispiel GBT dot js
nennen. Und es gibt und es gibt eine Bibliothek namens Express JWT, die normalerweise verwendet wird, um die APIs in unserem Server zu sichern. Also lassen Sie uns diese Bibliothek installieren, MPM Express JWT. Und lasst uns danach fragen. Also werde ich sagen konstante Express JWT. Und dann wird es Express JWT erfordern. Und die Schutzfunktion wird wie folgt sein. Also werde ich eine Funktion erstellen, es Authentication oder unsere JWT
nennen. Und diese Methode wird ausgedrückte DWT als Funktion zurückgeben. Und diese Funktion, es hat Optionen. Wir haben vorher über das Geheimnis gesprochen. Das Geheimnis basiert auf einer Zeichenfolge, in der wir unser Token erstellen können. Also, wenn jemand irgendeinen Token an unser,
zum Beispiel, Backend übergeben , müssen wir es mit der Zigarette vergleichen. Wenn das Token basierend auf diesem Geheimnis generiert
wird, hat er Zugriff auf die API. Aber wenn sein Token auf einem anderen Geheimnis basiert, dann wird die API nicht funktionieren. Und wie Sie sich erinnern, haben
wir dieses Geheimnis importiert oder in die Umgebungsvariablen eingefügt. Also hier werde ich sagen const Geheimnis wieder und dann die Umwelt dot Geheimnis verarbeiten. Eine weitere Option, die wir auch übergeben müssen, ist der Algorithmus, der dieses Token erzeugt. Wenn wir auf die Website von JWT io gehen, werden
wir sehen, dass das Token basierend auf vielen Algorithmen generiert werden kann. Hier sind die am häufigsten verwendeten. Für das Beispiel verwende ich HS 256, die auch Bibliothek JSON Web Token verwendet. So können wir haben, zum Beispiel, Algorithmen ist Array HS 256. Jetzt haben wir diese Methode mit dem Modul untersucht,
also sagen wir, dass Modulpunkteexporte unser JWT ist. Auf diese Weise werden wir in der Lage sein, es in unserer app.js zu verwenden. Also hier werde ich sagen, nicht unsere JWT verwenden, die
von der Konstante von DWT kommt , was erforderlich ist. Helfer JWT. So wird jetzt die Middleware verwendet. Jetzt ist unser Server basierend auf dem Token gesichert. Also jede Anfrage, die wir kommen, werden
wir gefragt Authentifizierung JWT. Und dann gehen wir hierher oder drücken JWT aus, wo es für uns gedreht hat. Wenn es möglich ist, dass der Benutzer diese API verwenden kann oder nicht basierend auf seinem Token. Also lassen Sie uns jetzt überprüfen, ob unsere API geschützt ist oder nicht. Also werde ich für eine Liste von Produkten fragen. Ich gehe hierher, ich schicke diese Anfrage und dann sehe ich diesen nicht autorisierten Fehler. wurde also kein Autorisierungstoken gefunden. Express JWT hat für mich diesen Fehler zurückgegeben. Also muss ich diesen Fehler irgendwie behandeln und an den Benutzer gesendet werden, der Daten benötigt hat. Aber zuerst, wie wir der Anfrage ein Token hinzufügen können. Normalerweise kommt das Hinzufügen eines Token mit einer Anfrage mit Autorisierung in Postman. Und auch im Frontend müssen
Sie zum Beispiel ein Träger-Token verwenden. Und Träger-Token. Wir müssen das Token übergeben, das Sie nach der Anmeldung mit dem Benutzer erhalten haben. Es gibt verschiedene Arten der Authentifizierung, die wir hier verwenden werden, die größere. Also vorher hatten wir auch hier den Token, nachdem wir uns mit einem Thomas User eingesperrt haben. Und hier werden wir dieses Token übergeben. Also die Autorisierung hier für diese API kommt, die mit diesem Token geladen ist. Also, nachdem ich die Anfrage gesendet
habe, werde ich dort i Daten bekommen. Wenn ich diesen Token entferne, werde ich das nicht tun. Ich habe keine Autorisierung vor und wir werden sehen wie man Token über die Anfrage in den Headern lädt. Also jetzt sind wir sicher, dass unser Token funktioniert. Also lasst uns hier etwas ändern. Machen Sie einen Fehler. Wir werden sehen, dass bei autorisiertem Fehler ungültiges Token. Also haben wir hier verschiedene Fehler. Also müssen wir diesen Fehler irgendwie behandeln. werden wir in der nächsten Vorlesung sehen.
39. Authentication: Wir haben zuvor gesehen, dass wir einige Fehler in unserer API haben. Also müssen wir diese Fehler behandeln, um für den Benutzer oder das Front-End
in schöner Weise angezeigt werden . Handhabung von Fehlern in RGS kann einfach auf diese Weise erfolgen. Wir gehen zur Middleware und sagen AP US. Und wir erstellen eine Funktion, die Fehler als Callback-Anforderungsantwort enthalten würde. Und als nächstes wird diese Methode in
diesem Fall jedes Mal ausgeführt, wenn ein Fehler in unserer API vorliegt. Also hier können Sie überprüfen, ob es einen Fehler gibt. Dann können Sie aufsteigen, zum Beispiel response.status. Wie zum Beispiel, sagen wir 500 und der JSON. Und in diesem JSON USA zum Beispiel, eine Nachricht und diese Meldung sagen Fehler im Server. So kann jeder Fehler im Backend auftreten, wird mit dieser Nachricht aufgerufen werden. Lassen Sie uns das mit dem Fehler versuchen, den wir mit der Autorisierung bekommen haben. Also werde ich hier in diesem Token einen Fehler machen. So werden wir hier sehen, dass wir Fehler
im Server haben, weil wir ein Problem im Token haben, aber wir wissen nicht, was genau der Fehler ist. So können wir diese Fehler basierend auf dem Typ klassifizieren. Denn wenn wir diesen Fehler irgendwie drucken, sagen
wir anstelle der Nachricht, der Sprint, dieser Fehler, ein Fehler hier und dann versuchen, werden
wir sehen, dass der Fehler einen Namen hat. Basierend auf dem Namen. Vielleicht kann ich die Fehler klassifizieren, oder wir können es so behalten. Es liegt an Ihnen, aber wir können es auf die aktuelle Art und Weise schöner machen. Aber zuerst, um eine saubere app.js zu haben, Lassen Sie uns diese Methode zu unseren Helfern verschieben. Also lassen Sie uns hier eine Datei erstellen, nennen Sie es Fehlerbehandlungsroutine für JS. Und wir erstellen eine Funktion, nennen es Fehlerbehandlungsroutine. Und es wird die gleichen Parameter, Fehler, Anfrage, Antwort und nächste haben. Und dann können wir damit umgehen, was wir hier haben. Also können wir das nehmen, wenn Sie es hier einfügen. Und auf diese Weise können
wir J so sauber wie möglich halten. Also hier müssen wir Error Handler sagen. Und Fehler-Handler ist konstant. Fehler und Lernen sind von den Helfern und Fehlerbehandlungsroutine erforderlich. Basierend auf dem Typ oder dem Namen des Fehlers können
wir unsere Fehler klassifizieren. Zum Beispiel, sagen wir, wenn Fehler Punktnamen, sahen
wir zuvor, dass wir einen Namen haben, einen autorisierten Fehler. Also werde ich hier den Status 401 zurückgeben, und der Fehler wird wie eine Nachricht sein. Wir können sagen, dass Nachricht ist, zum Beispiel, ist der Benutzer nicht. Wie wir auch in der Zukunft sehen werden, werden
wir Art der Fehler haben, die Validierungsfehler genannt wird. Wir werden sehen, dass später, wenn wir gehen, um Fotos hochladen. Oder wir sagen, Fehlerpunktname wird
zum Beispiel Validierungsfehler sein. Dann wird die Antwort die gleiche sein wie diese. Aber zum Beispiel, lassen Sie uns genug sein. Jetzt nur mit dem Fehler, werden
wir diese Nachricht ändern, wenn wir den Upload der Bilder und der Dateien durchführen. Und für allgemeine Fehler ist
es besser, das auch zu handhaben. Also haben wir hier den Antwortpunktstatus zurückgegeben. Und wenn es einen allgemeinen gibt, können
wir sagen, dass es ein Serverfehler ist, also sind es 500. Und dann schicke
ich im JSON die Nachricht als Fehler. Oder Sie können den Fehler direkt ohne Nachricht senden. Hier werden wir zurückkehren und auch hier zurückkehren. So haben wir jetzt einen Fehler-Handler für unsere Autorisierung und Validierung. Also jetzt im Front-End, wenn ich etwas unautorisiertes Synchronisieren mache. Wenn ich also nach einer API ohne Token frage
, bekomme ich diesen Fehler. Und wenn ich das tue, Zum Beispiel, Ich lade ein PDF hoch und ich bin nicht erlaubt, eine PDF auf unsere Thurber hochladen, so werde ich den Validierungsfehler bekommen. Und auch wenn hier kein klassifizierter Fehler vorliegt
, erhalten wir den Fehler im Allgemeinen als Nachricht im JSON. Es ist schön, einige Kommentare immer im Code zu haben. So können Sie einige Kommentare abspielen, um zu erklären, welche Art des Fehlers dies ist.
40. REST API von der Authentisierung ausschließen: Willkommen zurück. Jetzt haben wir eine völlig sichere API, so dass niemand sie ohne Authentifizierung verwenden kann. Also in diesem Fall muss der Benutzer, wenn er nachsehen wollte, er autorisiert sein. Das ist also nicht logisch für uns. So kann der Benutzer in der Lage sein, einen Login zu verwenden, um ein Token zu erhalten. In diesem Fall müssen
wir diese API irgendwie ausschließen, um authentifiziert zu werden. Also hier in Express JWT, kann
ich nicht sagen, es sei denn. Und in diesem, es sei denn, ich werde ein Objekt haben, wo ich
empathisch finden kann , sind die ganzen APIs, die ich ausschließen möchte. Lassen Sie uns zum Beispiel den Login ausschließen. Tun Sie das. Ich muss alle APIs angeben, die ich möchte, dass sie ausgeschlossen werden. Also kann ich hier sagen, api Schrägstrich, v1 Schrägstrich Benutzer und Login. Also möchte ich, dass das hier hingerichtet wird. Lassen Sie uns versuchen, dass jetzt Postman ist. Und wir sind immer noch nicht autorisiert. Dies liegt daran, dass ich hier einen weiteren Schrägstrich hinzufügen muss. Also gehen wir wieder zum Postman. Wir versuchen es und wir haben das Token wieder. Also musst du vorsichtig sein, dass du hier den Schrägstrich haben musst. So können wir auch das Register hinzufügen. Ich habe bereits hinzugefügt, dass es nur die API, die genau wie der Post ist. Also hier in Benutzern habe ich das Postregister, das genau das gleiche wie Post ist. So kann der Benutzer auch ein Konto im Webshop registrieren. Und hier wird für den Administrator verwendet, der Benutzer entfernen oder hinzufügen möchte. Was ist mit den Produkten? Produkte Außerdem brauche ich irgendwie, um das Produkt kostenlos ohne Authentifizierung zu bekommen. Daher brauche ich nicht, dass der Benutzer authentifiziert wird, um das Produkt zu erhalten, weil ich nicht möchte, dass sich Leute anmelden. Dann können sie meinen Webshop sehen. Ich brauche sie, um die Produktliste ohne Authentifizierung zu erhalten. Also, wie wir das tun können, müssen
wir die Methode angeben, die HTTP-Methode. Also kann ich sagen, drucken Sie mich nur, dass GET-Anfragen, aber erlauben Sie keine Post. Andernfalls werden die Leute in der Lage sein, Produkte in meinem Webshop zu posten. Um dies zu tun, diese Pfadmethode akzeptiert Ein Objekt und dieses Objekt hat ein erstes Feld als URL. Und zweites Feld sind Methoden. Und URL, ich kann die URL angeben, wie wir es hier haben. Aber statt dessen werde ich Produkte verwenden. Und die Methoden werden erhalten, zum Beispiel, und Optionen. Und das wird ein Array sein. So sehen wir hier haben wir die API-URL angegeben, und dann geben wir die Methoden an. Lassen Sie uns das versuchen. Ich werde hier gehen, um die Liste der Produkte zu erhalten. Ohne Authentifizierung. Es funktioniert perfekt. Und wenn ich das entferne, wird es nicht funktionieren. Es ist also besser, es so zu haben, damit der Benutzer die Produktliste im Frontend erhalten kann. Ich habe hier den Code umgestellt, also sieht er schöner aus. Also hier haben wir die API-Variable, die wir von der Umgebungsvariablen bekommen. Und hier verwende ich Backticks, um die Variable in die Stärke zu injizieren. Aber jetzt haben wir ein Problem. Erinnern Sie sich? Wir hatten vorher in den APIs für Produkte, wir haben Methoden wie zum Beispiel erstellt, vorgestellt und vorgestellt werden. Wir mussten auch öffentlich sein, weil ich
das Feature-Produkt in meinem Front-End ohne Benutzerauthentifizierung zeigen möchte . Also, hier, wenn ich es versuchen möchte, gehe
ich zu Postman hier geschrieben und ich sage drei vorgestellte Produkte. Ich werde nicht autorisiert sein. In diesem Fall müssen wir auch diese URL hier angeben. Aber dann werden wir eine sehr lange Liste von APIs haben, vor allem durch die Zeit, wenn wir sehr großen Webshop haben. Weil wir eine Menge APIs brauchen. Nicht nur sagen, zum Beispiel, geben Sie mir das Feature Produkt oder geben Sie mir die Produktzahl. Also das Schöne hier, dass ich STD-String so verwenden kann, kann
ich reguläre Ausdrücke verwenden. Reguläre Ausdrücke geben mir zum Beispiel die Möglichkeit , alles nach den Produkten zu
spezifizieren. Also hier mit dieser Zeichenfolge kann
ich diese verwenden. Also, weil wir hier haben, habe ich diesen Stern. Also alles, nachdem die Produkte funktionieren. Also jetzt, nachdem ich meine Ablehnungen erstellt habe, sage ich hier API Schrägstrich, v1 Schrägstrich Produkte. Hier ist der Escape-Schrägstrich. Es wird also keinen Konflikt mit dem Schrägstrich machen, den wir definieren müssen. In diesem Thema handelt es sich um reguläre Ausdrücke. Sie müssen also mehr über diese regulären Ausdrücke wissen. Ich verwende immer Ablehnung Tester
, der immer online befindet. Das ist eine schöne Website namens Regex 101. Und hier können Sie Ihre regulären Ausdrücke testen. Also hier werde ich dieses nehmen und es auf dieser Website versuchen. Also sage ich hier, so etwas wird erlaubt sein, aber wenn ich hier einen Fehler gemacht habe, dann wird es nicht erlaubt sein. Es ist also genau diese Formel. Hier ist es also besser, immer
reguläre Ausdrücke zu verwenden , um mehr die APIs anzugeben und weniger Code zu haben. Also lasst es uns jetzt versuchen. Und wir haben unsere vorgestellten Produkte. Lassen Sie uns auch das Gleiche tun, vier Kategorien. Also haben wir hier 1 und Kategorien. Damit wir sie kriegen können. Und zum Beispiel können wir sie nicht essen oder posten. Wenn ich also in Zukunft weitere APIs hinzufüge, müssen
wir hier einige Ausschlüsse hinzufügen, immer in diesem Pfadarray.
41. Mehr geheime Benutzer-: Wir sahen vorher, als wir einen Login hatten, dass wir keine Daten innerhalb dieser Antwort oder innerhalb des Token
angeben können . In diesem Fall kann ich auch einige geheime Daten übergeben, die ich sein möchte, kommt nur mit dem Token. Wenn der Benutzer diese Informationen nicht im Token hat, werde ich ihm nicht erlauben, etwas zu tun. Eine der geheimen Informationen, die ich hier weitergeben kann, ist admin. So ist admin, ich kann sagen, dass dieser Benutzer admin im Webshop ist oder nicht. In diesem Fall kann ich ihm erlauben, in das Webshop-Admin-Panel zu schauen oder nicht. Der normale Benutzer kann sich also nicht einloggen, aber der Admin, der admin hat, wahr, er hat weiter gesucht. Und natürlich ist
es in diesem Fall besser, die Tabellen zu trennen. So kann ich Benutzer und Kunden haben, zum Beispiel, oder Benutzer und Administratoren. Dies werden wir in der nächsten Vorlesung genauer sehen. Jetzt haben wir den Benutzer und dann werde ich überprüfen Benutzer ist admin. Also in diesem Feld, in diesem Token, kann
ich den Benutzer senden, wenn er admin ist oder nicht. Vielleicht werden Sie mir sagen, warum Sie das nicht im Frontend tun können, wie überprüfen Sie, ob der Benutzer admin ist oder nicht. In diesem Fall kann der Benutzer zum Beispiel
einige Hacker, der Erfahrung in der Programmierung hat,
er wird in der Lage sein, sich vom Frontend zum Admin-Panel anzumelden. Sogar er hat diese Fähigkeit nicht. Er kann nur eine gefälschte Daten erstellen, die er Admin ist. Und dann kann er wie in der JSON setzen ist admin wahr. Und dann kann er reinschauen. Und dieser Fall, es ist nicht gut in unserem Webshop, also ist es besser, es hier gesichert zu haben. Wenn der Benutzer also das I-Token nicht hat, das Admin hat, wird er nicht in der Lage sein, in das Admin-Panel zu schauen. Lassen Sie uns das versuchen und unser Token sehen, wenn es validiert ist, richtig, ich gehe zum Postman und drücke Senden. Das ist gut. Wir haben jetzt das Token. Also überprüfen wir dieses Token in DWT dot io. Gehen Sie hier, versuchen Sie es. Ich werde auch sagen, dass dieser Admin und Ablaufzeit. Also in diesem Fall kann die Person kein Token wie das bauen, weil es nicht tut, er hat nicht das Geheimnis. Und wenn Sie sich erinnern, überprüft die API
immer dieses Token. Wenn es mit dieser Zigarette gebaut wurde, die wir in unserem Backend angegeben haben.
42. Benutzer und Admins: Wie wir bereits gesehen haben
, haben wir einige API-Anfragen ausgeschlossen, um nicht authentifiziert zu werden. Zum Beispiel sollten hier die Produkte wie Git und Optionen nicht authentifiziert werden, da sie öffentlich sein werden. So kann jeder öffentliche Benutzer die Produkte in meinem E-Shop durchsuchen. So der Login-Benutzer, der in den E-Shop gesperrt, kann
er Produkte posten oder aktualisieren, um Produkte, Elite-Produkte. Aber in unserem Fall jetzt die Benutzer, unsere Kunden. Wenn ich also Kunde bin und mich in das Problem eingeloggt , kann ich in diesem Fall habe, kann ich in diesem FallProdukte löschen. Und in den ersten Sekunden, die ich diese Website online veröffentliche, wird
sie zerstört. Wenn Sie sich erinnern, haben wir im Modell ein Feld erstellt, das sagt, ist admin. Also hier geben wir den Benutzer an, ob er admin oder nein ist. In unserem E-Sharp werden wir auch Admin-Panel haben. Und dieses Admin-Panel ist für normale Benutzer nicht erlaubt, nur die Administratoren zu betreten. Also haben wir hier auf Benutzer-Tabelle, einige Benutzerrollen. Wir haben einen Kunden und wir haben admin, und sie sind beide in der Benutzertabelle. Sie haben hier die Freiheit,
zum Beispiel getrennte Tabellen in diesem Fall zu tun . Aber hier wollte ich die Benutzerrollen erwähnen. So können Sie sie auch in derselben Tabelle, aber mit unterschiedlichen Rollen erstellen. Es gibt viele Möglichkeiten, Benutzerrollen in Node.JS zu machen, aber ich gehe mit dem einfachsten Weg, den wir für unseren E-Shop benötigen. Wenn Sie sich erinnern, nachdem der Benutzer sich bei der Anwendung angemeldet hat, wurde
ihm ein Token zugewiesen. Und dieses Token ist mit Benutzer-ID überlastet und ist admin. Und hier wissen wir innerhalb des Token, ob der Benutzer admin ist oder nicht. Und wenn der Benutzer eine Anfrage sendet, disassembliert
die JWT-Bibliothek dieses Token mit dem geheimen Code, der in unserer API oder in unserem Server bereitgestellt wird. Und es wird sehen, dass, wenn es wirklich von diesem Server generiert wird oder nicht. So können wir den Benutzer identifizieren, wenn er Token aus unserem E-Shop hat oder nein. Bis jetzt ist alles schön. Nehmen wir an, dass ich ein richtiges Token habe. Und ich möchte auch in meinen Job als Admin schauen. Auf diese Weise wird es uns nicht sicher halten, weil der Benutzer, in diesem Fall ist in der Lage, Produkte zu löschen oder hinzuzufügen. Das Express-JWT hat also eine großartige Methode, die es
zum Beispiel überprüft oder das Token unter bestimmten Bedingungen widerruft. Um dies zu tun, gibt es ein Feld widerrufen wird, und dies wird widerrufen ist eine Funktion. So können wir auch im Rückruf angeben, ob der Benutzer admin ist oder nicht. Also erstelle ich hier, zum Beispiel, eine andere Methode wird widerrufen. Und dies wird widerrufen wird eine Funktion, asynchrone Funktion sein. Und es wird Anfrage haben, Nutzlast. Und Don. Was sind das für Parameter? Anfrage ist, wenn ich die Anforderungsparameter oder den Anforderungstext verwenden möchte, möchte
ich etwas wissen, was den Benutzer sendet. Die Nutzlast enthält die Daten, die sich innerhalb des Token befinden. Zum Beispiel möchte ich admin von dem Token erhalten, das dem Benutzer signiert ist. Und dieser Benutzer sendet es mir mit den Anforderungsheadern. Also hier in diesem Fall kann
ich sagen, wenn nicht Payload dot admin ist. Weil ich jetzt Zugriff darauf habe,
ist admin für die Nutzlast dieses Tokens. Dann werde ich zurückgeben, dass getan ist null und wahr. Also in diesem Fall sagen
wir, dass das Token ablehnen. Wenn also eine autorisierte API aufgerufen wird und unser Benutzer nicht admin ist, wird sie abgelehnt. Und sonst, wenn er admin ist, können
wir sagen, getan ohne irgendwelche Parameter. Wie bereits erwähnt, haben
wir nur zwei Arten von Benutzern in unserer Ausgabe. So haben wir Admin und Benutzer. Wenn Sie mehr Rollen haben, können
Sie hören, klassifizieren. Und hier definieren Sie, was in evozierten ist oder was erlaubt ist. Versuchen wir das mit dem Postboten. Wenn Sie sich erinnern, haben wir hier einen Benutzer, Thomas Jackson, der er nicht Admin im Shop ist. Und das sind seine Daten. So sehen wir hier, dass Admin falsch ist. Und als ich versuchte, ein Produkt in unserer API und neues Produkt zu veröffentlichen, werde
ich den Benutzer nicht autorisiert. Lassen Sie uns das Token so ändern, dass es mit admin durch ist. Nun, lassen Sie uns manuell zur Datenbank gehen und diesen Benutzer in einen Admin ändern. Also werde ich hier Admin durch sagen und dann klicke ich auf Update. Wenn ich jetzt versuche, senden zu verwenden, werde
ich auch unautorisiert. Warum? Weil ich das Token verwende, mit dem geladen wird, ist admin false. Also müssen wir noch einmal nachsehen, um ein neues Token zu erhalten. Also gehe ich zur Login-API, ich habe den Benutzer und das Passwort. Ich schicke diese Anfrage, ich habe ein neues Token. Und lassen Sie es uns in unseren Post-Anfragen verwenden. Auf Autorisierung. Ich spiele, ersetze es hier und versuche es erneut. Und es ist erfolgreich gepostet das Produkt dank JWT Express, dass es diese Methode hat. So war es in der Lage und machte uns in der Lage,
zum Beispiel, diese Benutzerrolle zu tun . Jetzt ist unsere Anwendung völlig sicher und niemand kann
sie ohne Autorisierung oder Admin-Rolle verwenden oder darauf zugreifen.
43. User Count REST API erhalten: Manchmal möchte der Administrator des Workshops wissen, wie viele Benutzer oder Kunden er in seiner Werkstatt hat. In diesem Fall benötigt
er eine API, um die Benutzeranzahl zu erhalten. Das haben wir vorher mit den Produkten gemacht. Wir hatten eine API, vor allem um zu bekommen, wie viele Produkte wir in unserer Ausgabe haben. Also lassen Sie es uns kopieren und zur API des Benutzers gehen. Nach dem Login und Registrierung können
wir es hier verwenden. Und wir sagen das gleiche GetCount, aber Benutzer. Und hier sagen wir Benutzeranzahl. Wenn kein Benutzer zählt, Sie 500 zurück und dann Ihre Rückkehr für mich Benutzeranzahl. Also lassen Sie uns speichern versucht, um seinen Postboten. Wir gehen zum Beispiel, hier, sage
ich Benutzer und bekommen Zählung. Probieren Sie es aus. Wir haben einen Fehler, weil ich einen Beitrag mache. Wir müssen ein GET machen. Wir versuchen es noch einmal. Wir haben Benutzeranzahl für, wir haben wirklich vier Benutzer. Wir haben auch keine Löschanforderung durchgeführt. Also lassen Sie uns es auch aus,
zum Beispiel, den Kategorien oder Produkten kopieren . Wir können es von hier aus machen und das hier holen. Und dann stellen wir eine Löschanforderung und ich ersetze Benutzer, Benutzer. Und alles andere ist Benutzer. Wie Sie hier sehen, ist
es genau so , wie wir es mit den Produkten gemacht haben. Wir speichern es, und jetzt sind wir völlig fertig mit den Benutzern. Ich bin so froh, dass Sie dieses Modul beenden und Sie werden
den Code sehen , wo wir im Ressourcenordner angekommen sind. So können Sie es herunterladen und dann Dinge ausprobieren, Dinge ändern, selbst
versuchen und versuchen, Ihren Code mit dem Code zu vergleichen, den ich hochgeladen habe.
44. Bestellungen: Willkommen in einer neuen Rubrik. In diesem Abschnitt ist völlig auf die Aufträge bezogen. So haben wir ihre Produkte und auch die Benutzer erstellt. Und jetzt werden wir die Befehle aufbauen. Wie jeder E-Shop, der Benutzer wird
eine gefüllt seine Karte haben und dann wird er zu überprüfen, um eine Bestellung einzureichen. Diese Bestellung wird mit der Adresse der Person und auch die Versandoptionen und wie er diese Bestellung bezahlen. Und wir werden auch nach dem Einloggen des Nutzers sehen, wie wir auch die Daten des Nutzers erhalten und die Bestelldaten automatisch füllen würden. Also, ohne dass der Benutzer die Rechnungsadresse wieder fühlen. So lassen wir die Daten kommen aus den Benutzerinformationen, die wir zuvor erstellt haben. Und auch in diesem Abschnitt werden
wir sehen, wie Sie das Produkt mit der Bestellung verknüpfen können. So werden wir sehen, dass die Bestellung viele Produkte enthält. Also manchmal füge ich zum Beispiel T-Shirt und Hosen hinzu. So werden wir sehen, wie Sie die Bestellung mit den Produkten verknüpfen können. Und im Backend oder im Backoffice wo sich der Administrator einloggen und die Bestellungen kontrollieren kann. Wir werden sehen, wie wir in der Lage sein werden, den Status der Bestellung zu ändern. So wird es von geliefert oder zum Beispiel
versandt, oder sogar ist es gesperrt oder storniert. Also hier wird alles völlig mit dem Backend verbunden sein. Wir werden nicht am Frontend arbeiten. Also werden wir mit Postman arbeiten. Schüler können verstehen, wie dieses Backend isoliert vom Front-End funktioniert. Ich hoffe, Sie werden diesen Abschnitt genießen. Dieser Abschnitt wiederholt, wie ich Ihnen sagte, nicht die vorherigen Abschnitte. Es hat keine neuen Dinge. Wie wir die Produkte wie eine Reihe von Bestellartikeln verknüpfen und es auch mit der Bestellung verknüpfen wird fertig. Und fangen wir an.
45. Aufträge und Bestell-: Willkommen zurück. Jetzt werden wir das Bestellschema und Bestellpositionen Schema implementieren. Zuvor haben wir die Datenbank implementiert oder wir planten die Datenbank basierend auf dem, was wir für den E-Shop benötigen. Wie Sie auf der rechten Seite des Bildschirms sehen, haben
wir die Tabelle bereits Bestellungen und Bestellartikel. Wie in relationalen Datenbank, sehen
wir die Verbindung zwischen der Bestellung und Auftragspositionen. Beginnen wir zuerst mit Bestellungen, wie wir zuvor gesehen haben, mit den Produkten und der Beziehung zu Kategorien. Wir hatten auch implementiert, dass die Kategorie einen Typ von Objekt-ID
hat und der Verweis auf Kategorie-Tabelle ist. Also lassen Sie uns das Gleiche zwischen der Bestellung und dem Bestellartikel machen. Also werde ich diesen Teil kopieren. Ich werde auf die Bestellung gehen und ich werde hier bestellen Artikel. Und hier haben wir die Objekt-ID und die Tabelle der Bestellung Artikel und erforderlich ja, durch. Aber der Unterschied hier, dass wir vielleicht mehrere Bestellartikel haben, nicht nur eine. Also in Mongoose können wir das implementieren, indem wir dies innerhalb eines Arrays ausrichten. In diesem Fall müssen
wir das Order Items Array
von IDs von Auftragspositionen übergeben oder haben , die in der Datenbank vorhanden sind. Also in diesem Fall müssen
wir Bestellartikel Tabelle erstellen. Also lasst uns hier eine Akte haben. Nennen Sie es bestellen Artikel dot js. Und es wird das gleiche Schema haben, Mongoose all diese Informationen. Die Sache hier werden wir Artikel haben und hier sind die Artikel, die wir nicht haben. Wir werden Menge haben, die Typnummer ist. Und es ist erforderlich. Ja, wahr. Und wie wir auch sehen, dass wir ein Produkt haben. Daher müssen wir diesen Bestellartikel mit dem Produkt verknüpfen. Also werde ich hier sagen, dass ich ID oder Typ der Objekt-ID haben werde. Mungo Schema-Types, dass Objekt-ID. Und das ist Referenz dieses Bestellartikels wird Produkt sein. Und lassen Sie uns als Bestellartikel exportiert und haben es als Bestellartikel. Und hier haben wir Artikel Schema bestellt. So ist unser Bestellartikel fertig, den wir hier importiert haben. Und wir referenzierten mit Objekt-ID in der Ordnungstabelle. Also die Sache hier, dass wir viele Beziehungen haben. So ist die Bestellung bezieht sich auf alle anderen Artikel und Bestellartikel bezieht sich auf das Produkt. , bekomme
ich in meiner Bewerbung Wenn ich also nach einer Bestellung frage alle anderen Artikel einschließlich ihrer Produkte und befülle diese Produkte. Zum Beispiel brauche ich auch den Namen und die Kategorie. Hier habe ich schnell die anderen Felder hinzugefügt, die wir brauchen, die Lieferadresse, 12 ,
Stadt, Postleitzahl, Land, Telefonstatus, die wir sagen, dass ein Standardwert anhängen. Also, wenn die Person eine Bestellung abgibt, dann ist der Standardwert oder der erste Status der Bestellung ausstehend. Und hier haben wir auch den Gesamtpreis. Wie wir sehen, dass wir es intern berechnen würden, wenn wir die Bestellung erstellen. Und hier, ein weiterer Verweis mit Objekt-ID auf die Benutzertabelle. Wir wissen, welcher Benutzer oder seine Störung und das Datum bestellt dann hier, dass der Benutzer es nicht an das Back-End senden muss. Es wird jetzt automatisch mit dem Punkt erstellt. Es wird also die Zeit erstellt, an der die Postanforderung gesendet wird. Und wie Sie sich vorher erinnern, hatten
wir hier einen virtuellen Ausweis. Um diese Unterstrich-ID nicht zu haben, können
wir auch normale ID haben. Lassen Sie uns es auch kopieren und haben es auf die gleiche Weise. Also hier habe ich das Bestellschema gesagt, erstellen Sie für mich ein virtuelles ID-Feld anstelle von Unterstrich-ID. Also jetzt sind wir bereit, mit diesen Tabellen zu arbeiten. Zum Beispiel haben wir hier Bestell- und Bestellartikel, so dass die Beziehung zwischen diesen beiden Tabellen erreicht wird. Und jetzt sind wir bereit, unsere API mit Bestellungen zu erstellen.
46. Array 1-5-1-: So ist die Reihenfolge mit den Auftragspositionen durch Array verknüpft. Also lassen Sie uns sehen und lesen Beispiel, wie das Frontend
diese Daten an das Back-End sendet , das ich hier erstellt habe und Objekt, zum Beispiel, wie der Benutzer die Daten an das Back-End sendet. vor, Stellen
wir unsvor,dass der Benutzer einen Wagen hat und er zwei Produkte ausgewählt hat, Produkt 1 und Produkt 2. Und sie haben unterschiedliche Ausweise. So Bestellartikel werden Array von zwei Produkten sein, und jedes Produkt wird eine Menge haben. Auf diese Weise habe ich eine Reihe von Bestellartikeln oder ihr Artikel hat eine Menge und das Produkt. Und der Rest wird derselbe sein. Außer hier werden wir sehen, dass der Benutzer den Benutzernamen senden wird, aber wir senden die Benutzer-ID, die die Bestellung erstellt. Das Gleiche hier. Wir haben den Produktnamen nicht gesendet, aber wir haben die Produkt-ID gesendet. So ist die Produkt-ID mit
dem Bestellartikel verknüpft und wie Bestellartikel mit der Bestellung verknüpft werden.
47. Neue Aufstellung und Erstelle die Stücke auf der: Eine Bestellung in unserer Datenbank erforderlich Daten vom Benutzer. Wie wir bereits gesehen haben, haben
wir diese JSON-Daten, wo sie Benutzer nach der Kasse, wird
er die Bestellung in unserer Datenbank platzieren. Also, was wir zuerst brauchen, um eine Postanforderung in Bestellungen API zu erstellen, haben
wir bereits eine GET-Anfrage. Wir müssen jetzt eine Post-Anfrage erstellen, um nicht den gleichen Prozess zu wiederholen, den wir zuvor getan haben. Lassen Sie uns die einfachste Post-Anfrage kopieren, die wir in Kategorien erstellt haben. Und wir gehen hier zwei Kategorien, posten Anfrage und kopieren es, und fügen Sie es in unsere Bestellungen. Also, was von uns erforderlich ist, müssen
wir ein Modell der Bestellung und die Felder der Reihenfolge, die wir waren, erstellen wir vor und erstellt das Schema. Nehmen wir also den einfachsten Fall an, da der Benutzer diese Daten sendet. Also hier bekommen wir die Daten. Ich füge sie schnell ein, um den gleichen Vorgang nicht zu wiederholen. Also haben wir vom Benutzer die Bestellartikel alle kommen mit dem Körper der Anfrage
, der hier ist. So haben wir alle anderen Elemente und alle Daten , die vom Benutzer vom Frontend gesendet werden. Lasst uns das Zeug hier reparieren. Ich lehre Cue so, wie man es schnell anruft, also müssen wir nicht wieder alles in Bezug auf die Bestellung schreiben,
weil wir immer Post Anfrage haben, wir haben immer löschen Anfrage. Es ist also besser, es aus der grundlegenden Anfrage zu kopieren und
zum Beispiel die Namensdinge so zu ändern , dass sie in unsere neue API passen. Also hier haben wir alles bestellt jetzt bestellen und die erstellte Bestellung zurückgeschickt. Aber wenn Sie sich erinnern, haben
wir Bestellartikel Tabelle erstellt. So weiß der Benutzer im Frontend nicht, dass
die Bestellelemente, die in der Datenbank gespeichert sind. Also hier werden Sie einfach diese Daten senden. Er will dreimal dieses Produkts und zwei Mal dieses Produkts. Aber um diese Daten zu holen und sie für den Administrator zu speichern, wird
dies zum Beispiel sein, wir können ein Hindernis sagen, ein kleines Hindernis, um sie wieder aus der Datenbank zu bekommen. Aber wir werden das mit Mongoose während dieser Beziehung zwischen Bestell- und Bestellartikeln lösen. Also, wenn der Benutzer oder die Post Anfrage gesendet oder erstellt wird, müssen
wir die Bestellartikel zuerst in ihrer Datenbank erstellen und dann an sie anhängen oder sie mit der Bestellanfrage beziehen, die wir hier haben. Und wie wir zuvor gesehen haben, dass Artikel bestellen, ist
es Array von IDs aus der Bestellartikeltabelle. Also in diesem Fall brauchen
wir Array von IDs,
IDs, die in der Datenbank dieser unsere Auftragspositionen sind. Also zuerst müssen wir diese IDs erstellen oder wie Mongoose sie für mich erstellen wird. Und dann werde ich sie mit der Bestellung speichern oder sie mit dieser Bestellung in Verbindung bringen. Also hier werden wir nicht
direkt vom Benutzer den Bestellartikel bekommen , der das Produkt enthält und die Menge wissen, wir brauchen nur Array von IDs. So können wir sagen, Bestellartikel-IDs. Und diese Bestellartikel-IDs stammen aus unseren erstellten Bestellartikeln in der Datenbank, was wir hier tun werden. Also haben wir diese konstante const Order Item-IDs, von
denen wir sie nach der Erstellung des Bestellelements in der Datenbank erhalten. Also brauchen wir irgendwie erste zwei Schleife innerhalb der Bestellelemente, die vom Benutzer gesendet werden. Also werde ich sagen, Anfrage Punkt Körper, Punkt Reihenfolge Elemente Schleife immer verwenden wir Karte, weil wir wissen, dass der Benutzer Array senden wird,
Array von Auftragselementen. Und hier werden wir oder ihren Artikel, einen Bestellartikel haben. Und dann innerhalb dieses Bestellartikels, erstellen
wir lassen neue Bestellartikel, neues Bestellartikelmodell. So bestelltes Artikelmodell. Wir müssen es von unseren Modellen oder deren Artikel haben. Es ist genau so, als würden wir eine neue Kategorie oder ein neues Produkt erstellen, oder es ist wie eine Post-Anfrage. Also sage ich hier, oder der Artikel, was sind die Felder in der Bestellposition? Wir haben Menge und ein Produkt. Also gehe ich hierher, ich sage Quantität. So haben wir bereits einen Bestellartikel aus der Liste der Bestellartikel, die sie Benutzer. Und so sage ich hier, bestellen Sie Artikel Punkt Menge und auch Produkt, das die Produkt-ID enthält. Also von Bestellartikel dot-Produkt, dann müssen wir diesen Artikel in der Datenbank speichern. Also sage ich lassen oder die neue Bestellposition, die gleiche Variable, die wir verwenden können. Warten Sie auf einen neuen Bestellartikel, den wir zuvor oder das Modell erstellt haben, und nicht sicher. Also hier speichern wir die Bestellposition in der Datenbank. Also, wenn wir in Ordnung Elemente, so für jeden Bestellartikel, werde ich es in der Datenbank speichern. Aber ich möchte, dass diese Karte für mich nur die IDs zurückgibt. Also hier sage ich, dass Sie nicht den neuen Bestellartikel zurückgeben, sondern die neue Bestellposition Punkt-ID. In diesem Fall erhalten wir nur die IDs in einem Array. Also haben wir die Bestell-IDs erstellt und wir fügen sie an die Bestellung, und wir werden die Bestellung speichern. Lassen Sie uns es nicht jetzt in der Datenbank speichern, lassen Sie uns einfach die Bestellung erstellt oder das
Bestellmodell an das Front-End an den Benutzer senden , nachdem er Anfrage posten. Also lasst uns das mit Postman versuchen. Ich gehe zum Postboten und ersetze dies durch Bestellungen, die auf unserer API basieren, wie wir es erstellt haben. Und dann werde ich hier die Daten setzen. Lassen Sie uns zuerst das Authentifizierungstoken überprüfen und dann den Körper, was wir dieses JSON haben, zum Beispiel bekomme
ich bereits diese IDs aus unserer Datenbank. Also müssen wir diese IDs bereits in der Datenbank haben. Lassen Sie uns die Post-Anfrage senden. Wir sehen, dass wir einen Fehler bekommen haben. Der Fehler kommt, Lassen Sie uns in der Konsole unseres Testservers oder unseres Servers sehen, wir werden sehen, dass wir hier ein Gewicht haben. Dies liegt daran, dass wir hier ein Gewicht haben, aber dies erfordert eine asynchrone Funktion. Ich meine hier. Also hier haben wir ein Gewicht und dies erfordert eine asynchrone Funktion. In diesem Fall können
wir nicht in einer normalen Funktion warten. Wir müssen eine asynchrone Funktion platzieren, ist im Grunde diese. Also würde ich hier async sagen und speichern und erneut versuchen. Und wir werden sehen, dass die Anfrage erstellt wird oder die Bestellung neu gekühlt wird, aber die Auftragspositionen sind leer. Lassen Sie uns diese Bestellelemente verfolgen, um zu sehen, warum sie nicht erstellt werden. Um sie zu verfolgen. Wir können Konsolenprotokoll der Bestellung, Artikel, IDs tun. Und lassen Sie uns in der Konsole sehen, was es für uns zurückkehren wird. Also hier habe ich gerettet. Und dann versuchen wir es noch einmal. Lassen Sie uns die Konsole überprüfen. Wir werden sehen, dass wir zu den Versprechen zurückgekehrt sind. Also geben wir nicht tatsächlich die ID zurück, wir geben ein Versprechen zurück. Dies, weil wir hier asynchrone Funktion haben und warten, und wir kehren mit erwarten ein Versprechen zurück. Irgendwie müssen wir diese Versprechen auflösen. Da der Benutzer Array von Auftragspositionen sendet, nicht nur eine. Also müssen wir diese Versprechen miteinander kombinieren. Also hier haben wir eine Reihe von Versprechen, sie zu kombinieren, ich verwende Versprechen Punkt alle. Also hier in diesem Fall werde ich ein Rückgabeversprechen oder ein Versprechen haben, das danach hier gelöst wird, bevor wir die Bestellung erstellen. Also lasst uns versuchen, zu konsolidieren. Wieder. Wir sehen, dass wir ein Versprechen bekommen haben, nicht zu Versprechen wie zuvor. Also müssen wir dieses Versprechen auflösen. Wie wir es lösen können, können
wir eine neue Konstante schaffen. Nennen Sie es Bestellnummer ist nur oder Bestellartikel. IDs, zum Beispiel, aufgelöst. Weil das ein Versprechen ist. Also kann ich hier sagen, äh,
warten Sie, bis das gelöst ist, und dann drucken Sie die für mich aus. Und dann ersetze ich diese Bestellartikel-ID durch die aufgelösten Bestellartikel-IDs. Versuchen wir es nochmal. Das ist großartig. Wir kamen wieder zu ihnen. Und im Konsolenprotokoll haben
wir die beiden IDs, die aus unseren Bestellartikeln erstellt werden. Lassen Sie uns das in der Datenbank überprüfen. Nach dem Einloggen sehe ich hier Bestellartikel Tabelle erstellt wird. Ich habe nicht geschaffen, dass sie Buch Atlas ist sehr klug. Basierend auf dem Modell, das ich in meiner Datenbank oder in meinem Code erstellt habe, erstellt
es die Tabelle für mich. Also hier, wenn ich Artikel bestellen gehe, werde
ich sehen, um Artikel zu bestellen, die auf
dem Postboten erstellt werden und sie haben die gleiche ID, die in der Datenbank sind. Also jetzt sind wir bereit, unsere Bestellung zu erstellen. Also hier haben wir nichts, also haben wir keinen Bestelltisch. Das liegt daran, dass wir das Sparen auskommentiert haben. Also, hier, nachdem die Bestellung erstellt oder gespeichert wurde, werde ich sie erneut senden. Lassen Sie uns dieses Konsolenprotokoll entfernen, um unser Protokoll nicht voller unnötiger Daten zu haben. Also hier werde ich jetzt zum Postboten gehen. Geben Sie eine Bestellung auf. Großartig. Wir haben jetzt einen Auftrag erstellt, und wir haben hier, wird
die neue ID der Bestellung erstellt. Also, wenn ich wieder zum Atlas gehe, werde ich mich erfrischen. Und wir werden sehen, dass Bestellungen Tabelle automatisch erstellt wird, weil wir Bestellmodell haben. Also, was ich Mongoose gebeten habe, für mich dieses Bestellmodell zu erstellen, dann hat er den Tisch erstellt. Hier haben wir also noch andere Artikel, Objekt-ID der neuen Auftragspositionen, die hier wieder angelegt werden. Jedes Mal, wenn ich die Bestellung
aufgebe, erstelle ich eine neue Bestellung Artikel. In der nächsten Vorlesung werden
wir sehen, wie Bestellartikel oder die Bestellung selbst detaillierter Weg zu bekommen. So werden wir nicht nur IDs bekommen, wir werden detaillierter. Wir werden den Bestellartikel sehen, was er enthält, und auch alles. Zum Beispiel, welcher Benutzer es erstellt hat, nicht nur IDs.
48. Hole die Get und die Produkte in Bestell-: Okay, jetzt lasst uns eine Liste von Bestellungen bekommen, da wir jetzt eine Bestellung in der Datenbank haben. Wir haben bereits eine GET-Anfrage für eine Liste von Bestellungen erstellt. Versuchen wir es jetzt mit einem Postboten. Ich werde hier gehen, das gleiche wie Post-Anfrage erstellen, aber es wird ein GET und die Autorisierung sein, denn immer, wenn ich eine neue API erstelle, muss
ich sie authentifizieren lassen. Oder wir schließen diese API von der Authentifizierung aus, wie wir zuvor gesehen haben. Also, jetzt werde ich dieses Token Get Liste Mäuse verwenden, wir haben Liste von Bestellungen. So haben wir jetzt nur eine Bestellung in der Datenbank. Und wir bekommen es mit der GET-Anfrage, weil es ein Array ist. Lassen Sie uns den Benutzer füllen, damit wir die Benutzerdetails in dieser Anfrage sehen können. Weil ich zum Beispiel im Admin-Panel in der Tabelle der Bestellungen sehen möchte , möchte
ich die Benutzer sehen, die sie bestellt haben. Also hier gehen wir in den Code und wir sagen einfach Punkt füllen. Was soll der Benutzer aufgefüllt werden? Sparen. Versuchen Sie es noch einmal mit Postman. Wir bekommen jetzt das Benutzerdetail, all sein Detail. Aber für mich als Benutzer oder Admin benötige
ich nicht alle Informationen des Benutzers. Also will ich nur, zum Beispiel, seinen Namen. Um das zu tun. Wir setzen nur nach der Bevölkerung des Benutzers, wir setzen die Felder, die wir befüllen wollen. Also alles, was ich habe, zum Beispiel, den Namen und in Postman, wenn ich diese Anfrage schicke, bekomme
ich nur den Namen. Lassen Sie uns eine andere Bestellung mit anderen Daten posten. Zum Beispiel werde ich hier statt Land sagen, Tschechische Republik, ich werde USA stellen. Also hier werde ich dorthin gehen und sagen, ich benutze keine und eine andere Nummer. Beispiel: 1, 2, 3, 4, 5, 7. Also hier werde ich eine andere Anfrage oder eine andere Bestellung posten. Also in diesem Fall werde ich dort mindestens zwei Bestellungen bekommen. So können wir die Bestellungen auch nach Datum sortieren. Also, weil wir bereits das Datum bestellt Feld haben, so haben wir das Datum hier durch den Punkt. Nun können wir das auch nach Datum sortieren. Um das zu tun, Es ist sehr einfach. Ich gehe einfach hier und nach der Population des Benutzers, sage
ich sortieren basierend auf dem Spaltendatum bestellt. Also, hier haben wir, Sie erinnern sich an ein Datum bestellt. Und basierend auf dieser Spalte möchte
ich meine Ausgabe sortieren. Also gehen wir hierher, Postbote,
versuchen, die Liste wieder zu bekommen, und wir sehen, dass wir sie nach Datum sortiert bekommen. Wie Sie sehen, ist die Reihenfolge hier von der ältesten bis zur neuesten. So haben wir zuvor diese am 23. Dezember zu dieser Zeit. Und jetzt haben wir diesen. So können wir vom neuesten bis zum ältesten bestellen. Und ich denke, das, was den Benutzer interessiert, dies zu tun. Wir richten dies nur in einem Objekt und sagen dann, dass dieses Objekt gleich minus eins ist. Also, wenn ich in der Sortiermethode sage, diesen Fall, dann bedeutet es, dass sie von der neuesten zum ältesten bestellt werden. Also, wenn ich mich erfrischen und sofort zu Postman gehen, und wir werden sehen, dass wir zuerst die neueste 1 und dann die älteste haben. Sie können die Dokumentation der Sortiermethode auschecken. Es hat viele Funktionen. So können Sie sie verwenden, um Ihre Ausgaben basierend auf einem
bestimmten Feld oder einer bestimmten Reihenfolge zu sortieren . Lassen Sie uns jetzt eine Anfrage Detail oder eine Bestellung Detail erhalten. Das Gleiche ist hier. Ich poste oder ich bekomme diese Anfrage hier eingefügt. Und dann, anstatt die Sortierung und Population zu haben, haben
wir nach ID gefunden. Und hier geben wir die ID an. Und die ID wird Request Dot Params sein. Weil seine Parameter ID angenommen haben. Und wir wurden umbenannt, um nur anstelle der bestellten Liste zu bestellen. Hier haben wir Ordnung, Ordnung, Ordnung. Ich gehe jetzt zum Frontend und ich bekomme zum Beispiel dieses. Danach habe ich diese ID der Bestellung eingegeben und diese Anfrage gesendet. Und ich werde nur diese Ordnung mit der Bevölkerung des Benutzers bekommen. Wir kommen jetzt zu dem wichtigen Punkt. Wir haben hier, die Bestellartikel nur als IDs. Wir wollen sehen, dass die Produkte in diesem Artikel sind und die Menge, die, lassen Sie uns unseren Code ein wenig bereinigen. Also haben wir hier bevölkern. Und wir werden auch gelehrt haben, ein anderes Feld zu bevölkern, das Bestellgegenstände ist. Das probieren wir jetzt aus. Wir werden sehen, dass wir das Produkt und die Menge bekommen haben. Aber was ist, wenn ich dieses Produkt auch so füllen möchte , dass wir das Produktdetail im Inneren oder die Artikel sehen. So wie wir hier gesehen haben, der Benutzer, haben wir alle seine Details. Der Unterschied hier, dass wir Array von ihnen haben. Wir müssen also wissen, wie man das Produkt innerhalb dieses Arrays von Bestellartikeln füllt. Um das zu tun, haben wir hier eine andere Art zu bevölkern. Statt dies zu tun, wird
die befüllte Methode ein Objekt sein, das einen Pfad akzeptiert. Und hier habe ich Bestellung Artikel oder Bestellung Artikel. Und in diesem Objekt, sage
ich auch füllen Sie für mich das Feld, das Produkt genannt wird. Also werde ich es hier setzen und es noch einmal versuchen. Wir werden sehen wie eine Magie. Wir haben alle Informationen über die Bestellartikel bekommen. Und in unserer Datenbank sieht
die Reihenfolge so aus. Wenn wir also aktualisieren, haben
wir unsere Bestellung nur mit IDs und Bestellartikel sind nur IDs. Auf diese Weise halten
wir eine kleine Größe die Dokumente der Datenbank, und wir tun die Beziehungen mit Mongoose Flexibilität. Wenn wir auch hier sehen, dass das Produkt die Kategorie hat und die Kategorie auch id ist. Wenn ich auch die Kategorie füllen möchte, können wir das nicht tun. Kein Problem. Wir können sagen, auch das ist bevölkert. Dies ist ein Pfad, der Produkt genannt wird und
füllen Sie dann Kategorie, die innerhalb dieses Produkts ist. Also, wenn wir wieder gehen, senden Sie diese Anfrage, wir werden sehen, dass die Kategorie auch für die gesamte Bestellung gefüllt ist. Um es sauberer zu machen, können
wir diesen Weg hier nicht haben, also können wir verstehen, wie er gebaut wurde. Also hier habe ich hier gesagt, dieser hier. Jetzt habe ich den sauberen Code. Dies ist also die Art und Weise, wie man die Beziehung zwischen den Tabellen in der Datenbank auffüllt. Wir sehen in der Zukunft. Nun, wie wir diese Aufträge löschen und wie wir den Status dieser Bestellung aktualisieren, die in der nächsten Vorlesung sein wird.
49. Aktualisieren von Update REST API: Nachdem wir die GET-Anfrage und Post-Anfrage für die Bestellung gemacht haben, Lassen Sie uns die Update-Anfrage als die Anforderungen meines Problems nach oben. Der Administrator des A-Sharp möchte nur den Status der Bestellung ändern. Wenn also ein Kunde eine Bestellung an den E-Shop aufgibt, möchte
der Besitzer des Shops diese ältere verarbeiten. Auf diese Weise wird
der Auftrag vom Biegen und dann zum Bearbeiten übertragen und dann zum Beispiel zum Verschieben und dann zum Auslieferungszustand. Also müssen wir nur den Status der Bestellung aktualisieren. Wir haben zuvor gesehen, wie wir aktualisieren, zum Beispiel das Produkt. Wir haben alle Felder aktualisiert, so dass der Benutzer oder das Frontend mir alle Felder erneut senden muss. Aber hier in den Bestellungen müssen
wir nur ein Feld aktualisieren, das der Status ist
, der dieses ist. Um das zu tun, machen wir es so schnell. Wir kopieren eine der Anfragen, zum Beispiel, aus Kategorien. Wir kriegen das hier. Wir kopieren es auf die Befehle. Diese äußere Put-ID. Wir brauchen den Ausweis. Und dann werde ich hier sagen, ich habe den Befehl. Hier. Ich frage nach dem Bestellmodell. Und hier passieren wir nichts, nur den Status. So wird der Status von Anforderung oder Anforderung Punktkörper, Punktstatus kommen. Wenn auf diese Weise keine Bestellung mit dieser ID zugewiesen ist
, sende ich einen Fehler. Andernfalls schicke ich die aktualisierte Bestellung zurück. Natürlich können Sie alle Felder hinzufügen, die Sie aktualisieren möchten. Aber die Anforderungen für diesen E-Shop, muss
ich nur den Status aktualisieren. Lass es uns speichern und das mit dem Postboten ausprobieren. So haben wir bereits diese Bestellung, Lassen Sie uns aktualisiert. Also werde ich eine Zeile haben und der Typ davon oder ist JSON. Also hier werde ich sagen, dass der Status zum Beispiel verschickt wird. Also habe ich hier versandt. Und wir müssen auch diese Anfrage ändern, um zu setzen. Und wir schicken es. Und wir haben die gleiche Reihenfolge wie eine Schicht. Also lasst uns nochmal die Bestellung bekommen. Wir haben eine hier, überprüfen Sie es. Wir sehen die Bestelldetails bereits und wir haben den Status der Bestellung wird versandt. Das Löschen der Bestellung wird gleich sein. Lassen Sie uns es auch die Löschreihenfolge aus der Kategorie kopieren. Und hier werden wir Ordnung hinzufügen, nach ID
finden, und dann wird es für mich Ordnung zurückkehren. Wenn es gibt oder dort, dann geben Sie wahren Erfolg zurück. Andernfalls senden Fehler oder nicht gefunden unsere einige Fehler auf dem Server. Also lasst uns das auch mit Postman versuchen. Ich werde dies von get zu delete ändern. Wir gelöscht und wir bekommen Erfolg. Diese Kategorie wird gelöscht. Wir müssen das beheben, weil es keine Kategorie ist. Wir müssen es als Ordnung schaffen. Und hier auch bestellen. Also jetzt, wenn ich eine Liste der Bestellungen bekommen möchte,
wieder, wir werden nur eine Bestellung haben, die ist diejenige, die USA genannt. Und wir hatten jetzt nur einen. Vielleicht wird jemand fragen, was ist mit den Bestellartikeln? Werden sie gelöscht oder nein. Lassen Sie uns das in der Datenbank überprüfen. In unserer Datenbank hatten wir Bestellartikel und wir sollten zwei Bestellungen nur haben, um Artikel zu bestellen, aber wir sehen, dass die Bestellartikel noch hier sind. Also haben wir hier ein Problem. Wir müssen auch die Bestellpositionen der Bestellung löschen, die gelöscht wird. Also werde ich Ihnen das als Übung überlassen. Die Übung wird also nur sein, die bestellten Artikel auch nach dem Löschen der Bestellung zu löschen. Und dann werde ich Sie im nächsten Video sehen, um die Lösung zu sehen, wie wir das Löschen von Bestellpositionen implementiert haben, nachdem wir die Bestellung gelöscht haben.
50. Den Gesamt-Preis von einer Bestellung mit Mongade berechnen: Das Senden des Gesamtpreises vom Front-End ist keine gute Praxis. Zum Beispiel, wenn ein Hacker in der Lage war, eine Bestellung mit einem gefälschten Gesamtpreis zu senden, dann wird es in meiner Datenbank mit einem gefälschten Gesamtpreis gespeichert. Vielleicht hat jemand eine Bestellung von hundert,
zehnhundert Dollar, aber er hat es vorgetäuscht und er hat es mit $2 gemacht. Wenn ich einen sehr beschäftigten Webshop
habe, werde ich ihn nicht erkennen. Es ist also besser, nachdem der Benutzer die Bestellartikel,
IDs oder die Bestellartikel im Allgemeinen an das Backend sendet . Wir berechnen das intern im Backend basierend auf dem, was wir in der Datenbank haben. Die Quelle der Wahrheit ist also eine Datenbank. Was ich also tun muss, ist,
die Bestellelemente zu durchlaufen , die ich vom Benutzer oder vom Frontend erhalten habe. Und dann löse ich die Bestellartikel auf. Ich bekomme das Produkt verwandte Produkt. Und mit der Menge multipliziere
ich das und errechne den Gesamtpreis. Also kommt alles aus der Datenbank. Also lasst uns versuchen, das zu tun. Hier. Wir haben Bestellartikel-IDs aufgelöst. Irgendwie müssen wir dies durch eine Variable ersetzen, die wir intern berechnen. Also nennen wir es einen Gesamtpreis. Und dieser Gesamtpreis wird von einer
Konstante kommen , in der wir diese Bestellartikel lösen werden. Also auf die gleiche Weise klicken
wir auf Erstellen Sie eine Konstante, nennen es einen Gesamtpreis. Weil wir hier genau die gleiche Art und Weise bestellen werden. Also werden wir es wie Versprechen Punkt alle tun. Also hier bekomme ich die Bestellartikel aufgelösten IDs und mappe über sie. Und ich bekomme bestellte Artikel-ID. Ich bekomme das Bestellelement aus
der Datenbank zurück , da es hier bereits in der Datenbank gespeichert ist. Also genau wie hier, sagen Sie async für unseren Bestellartikel. Und wir bekommen die Bestellung Artikel durch warten. Und wir erhalten auch das Modell des Bestellartikels. Und finden Sie nach ID, die ID, die ich hier von der Karte bekommen habe. Und dann erhalten
wir innerhalb dieses Bestellartikels nur die Produkt-ID und die Menge. Also müssen wir auch das Produkt zu befüllen. Und um es schneller zu machen, können
wir nur nach dem Preis fragen. Also hier werde ich Bestellung Artikel mit dem Bereich des Produkts in ihm
zurückgegeben, nur der Preis. Und dann werde ich zu Create Constant Gesamtpreis gehen, nur einer. Und ich werde sagen, die Bestellposition, die ich aus der Datenbank, Punkt-Produkt, Punkt-Preis, weil wir den Preis bereits aufgefüllt haben, multipliziert mit der Bestellposition Punkt Menge. In diesem Fall bekomme ich auch die Menge multipliziert mit dem Preis. Ich erhalte den Gesamtpreis eines Artikels. Also Mapping über all dieses Array, möchte
ich danach, nur den Gesamtpreis
zurückgeben. Also hier werde ich eine Reihe von Gesamtpreisen für jeden Bestellartikel haben. Lassen Sie uns also versuchen,
dieses Gesamtpreis-Array zu konsolen , um sicherzustellen, dass alles gut funktioniert. Und ich werde eine neue Anfrage oder eine neue Bestellung posten. Ich habe hier einen Fehler erhalten, weil ich Konsolenprotokoll ein Versprechen bin. Also hier, wie wir vorher getan haben, dass wir hier nur ein Versprechen haben, zurückgekehrt, versprochen überhaupt, alle kombinierten Versprechen, wir haben ein Gewicht. Also ist es einfach, wir können hier auch ein Gewicht legen, wie Gewicht und dieses Versprechen auflösen, nachdem alles drinnen erledigt ist. Versuchen wir es noch einmal. Starten Sie unseren Server neu. Versuchen Sie, zu posten. Wir werden hier sehen, dass wir eine Reihe von zwei Artikeln oder Bestellartikel mit ihrem Gesamtpreis haben. Also müssen wir zusammenführen oder diese beiden Preise zu einem zusammenfassen. Um das zu tun, können wir nicht einfach einen konstanten Gesamtpreis machen. Und diese Gesamt-Preis-Array, ich werde es reduzieren. Und es ist eine reduzierte Methode. Es ist eine berühmte Möglichkeit, die Summe aller Zahlen innerhalb des Arrays zu erhalten. Also habe ich a und b, kehre für mich ein Plus B und hier fügen wir eine 0 hinzu. Der Anfangswert ist also 0 und kombiniert dann a und B oder kombiniert jedes Element dieses Arrays. Also hier, nachdem wir den Gesamtpreis erhalten haben, können
wir ihn hier platzieren, unseren Server
neu starten, eine Anfrage stellen
und wir werden sehen, dass wir eine Post-Anfrage mit der Bestellung erstellt haben. Und der Gesamtpreis beträgt 146, der aus zwei Auftragspositionen kombiniert wird. Lassen Sie uns auch diese Bestellung Detail bekommen. Wir gehen hier, wir setzen es in die GET-Anfrage, um die Details zu erhalten. So werden wir das erste Produkt sehen, wir haben eine 32 und die Menge ist drei. Und auch das zweite Produkt ist Menge 2, und der Preis ist 25. Der Gesamtpreis wird 146 sein. Auf diese Weise garantieren wir, dass der Gesamtpreis nur aus unserer Datenbank kommt, nicht aus dem Frontend. Zunächst einmal
haben wir die Bestellartikel so erstellt, wie wir es zuvor gesehen haben. Dann erhielten wir den Preis, Gesamtpreis jedes Bestellartikels, und dann kombinieren wir sie oder fassten sie zu einer Nummer zusammen. Und dann haben wir die Bestellung mit dem Gesamtpreis erstellt
, der komplett aus der Datenbank stammt.
51. Hole die E-Shop mit $: Wie immer. Und am Ende jedes Moduls machen
wir immer einige Post oder GET Anfrage von einigen statistischen Daten. Was mir hier in den Sinn kam, dass
ich zum Beispiel im Dashboard des Admin-Panels
der Anwendung zeigen möchte , wie viel Summen Hügel ich in meinem gesamten E-Shop habe. Also der Besitzer des Shops, als er sich in das Admin-Panel einschloss, sieht
er den Gesamtumsatz und er wird glücklich sein. Also, wie immer, lassen Sie uns eine Get-Anfrage erstellen. Und die Route wird erhalten und Gesamtumsatz sein. Und hier werden wir, nachdem wir diese API übergeben haben, nach den Bestellungen, werden wir den Gesamtumsatz erhalten. Also hier haben wir asynchron, Anfrage und Antwort. Und es wird eine ROM-Methode sein. Und wir definieren eine Variable, wir nennen sie Gesamtumsatz. Und wir werden den Gesamtumsatz direkt von MongoDB erhalten. Also, indem ich Mongoose benutze, hier, habe ich warten, das Bestellmodell. Dann verwende ich eine Methode namens Aggregat. Und das Aggregat, ich kann wie Join gruppieren, können
wir in relationaler Datenbank sagen, alle Tabellen oder alle Dokumente innerhalb dieser Tabelle zu einem. Und dann bekomme ich eines dieser Felder in dieser Tabelle und verwende eine der Mongoose-Methoden, wie zum Beispiel einige auf diesem Feld. So wird es für mich die Summe aller Felder zurückgeben, welcher Name, Gesamtpreis. Wenn Sie sich erinnern, haben wir bereits einen Gesamtpreis berechnet, wie wir in der vorherigen Vorlesung in jeder Bestellung gesehen haben. Also müssen wir alle diese Gesamtpreise in einem zusammenfassen, indem wir einige verwenden. Um das zu tun, haben
wir hier ein Objekt. Wir gruppieren den Tisch. Und hier bei der Methode sagen
wir, dass die ID null ist. So ist es. Und wir nennen das Feld, das wir in unserer API zurückgeben möchten. Also sage ich, der Gesamtumsatz ist die Summe. Dies ist ein reserviertes Wort in Mungo des Gesamtpreises. Der Gesamtpreis ist ein Feld in der Reihenfolge, und wir haben es hier berechnet, während wir die Bestellung erstellen. Also dann werde ich den Gesamtumsatz erhalten, indem ich alle Gesamtpreise zusammenfasse. Dann überprüfen wir, ob es keinen Gesamtumsatz gibt, dann kehrten wir für mich zurück, Fehler response.status. Und dann sagen wir zum Beispiel 400. Nicht senden, die Bestellung, Verkäufe können nicht generiert werden. Sonst sagen wir Antwort Punkt senden. Der Gesamtumsatz ist der Gesamtumsatz. Lassen Sie uns versuchen, dass jetzt mit Postman, ich gehe hier, ich sage, Gesamtumsatz zu bekommen. Wir haben eine Anfrage geschickt. Wir sehen, dass wir Array mit ID null und Gesamtumsatz haben. Also haben wir gesehen, dass wir genau das bekommen haben, was wir in der Gruppe gebaut haben. Wenn ich also diese ID null entferne, erhalte
ich einen Fehler, weil Mongoose kein Objekt ohne eine ID oder Objekt-ID 2 zurückgeben kann, wie wir hier in diesem Fehler sehen, sagt
es, dass eine Gruppenspezifikation eine ID enthalten muss. Also ist es besser, es zurückzulegen. Oder Sie können ID auch geben, indem Sie Mongoose-Spezifikationen verwenden, Es ist besser, es als null zu setzen. Also haben wir hier gesehen, dass wir ein Array haben. Wir können auch direkt BOP dieses Array und nehmen nur den Gesamtumsatz. Also können wir sagen, hier, für mich Totalverkaufs-Dot Pop
zurückgegeben, weil es ein Array ist. Und dann Gesamtumsatz. Also in diesem Fall habe ich das erste Element dieses Arrays
oder das leichte Element, weil es nur ein Array mit einem Element zurückgibt. Also sage ich, gib mir diesen Artikel und den Gesamtumsatz, den ich hier angegeben habe. Das versuchen wir nochmal. Wir senden diese Anfrage, wir erhalten Gesamtumsatz ist 290 zu diesem, weil wir hier haben, wenn wir die Anfrage bekommen, haben wir Bestellungen. So hat die erste Ordnung 146 und die zweite Ordnung hat auch 146. Wir können auch bekommen, wie viele Bestellungen erstellt oder in
meinem Shop platziert werden, bevor wir eine Gesamtzahl der Produkte machen. So können wir dies hier aus der Produkt-API kopieren und in Bestellungen aufgeben. Und wir sagen hier oder da, zählen unsere Unterzählung oder die Kontoinhaber zählen und hier bestellen. Und mit Zähldokumenten werden
wir die Zählung bekommen und in unsere Auftragsanzahl zurückkehren, und dann werden wir es bekommen. Versuchen wir das noch einmal in unserem Postboten. Also hier sage ich GetCount. Und wir werden sehen, dass wir drei Befehle haben. So ist jetzt unsere API für die Bestellungen abgeschlossen. Wir sind jetzt bereit, alle API im Zusammenhang mit den Bestellungen im Front-End zu verwenden. Und im nächsten Abschnitt werden
wir zum Produkt zurückkehren, um die Bilder hochzuladen. Sie erinnern sich, wir haben hier Bild und Bilder. Das Bild wird das Hauptbild ihres Produkts sein, und die Bilder enthalten die Galeriebilder ihres Produkts. Ich hoffe, Sie haben diesen Abschnitt genossen und sehen uns in der nächsten.
52. Benutzer-: Im Frontend, wenn der Benutzer eingeloggt ist, muss
er wissen, welche Aufträge er in der Historie bestellt hat. Also müssen wir wenigstens eine Bestellhistorie haben. Auf diese Weise wird
diese API genau so sein, als würde man am wenigsten Bestellungen erhalten , so
etwas, aber sie wird nur für einen bestimmten Benutzer angegeben. Nehmen wir also diese GET-Anfragen und kopieren Sie sie auf die letzte. Und wir werden hier sagen, dass ich
zum Beispiel ältere Benutzer oder Benutzerbestellungen bekommen möchte. Und wir müssen als
Beispiel als Parameter die Benutzer-ID angeben . Also hier sagen wir Benutzer-ID. Wenn ich also eine Anfrage vom Frontend oder von unserer API sende, müssen
wir die Benutzer-ID angeben, für die ich die Bestellungen erhalten möchte. Und als Bedingung für die Suche, sagen wir Objekt, Benutzerfeld muss Anforderung dot params dot sein. Das gleiche Paradigma, das ich hier habe, Benutzer-ID. Und vielleicht müssen wir den Benutzer nicht selbst füllen. Wir müssen die Produkte innerhalb dieser Bestellung füllen. So ist es genau so, wie wir es hier im Bestelldetail getan haben, wie wir die Bestellartikel und Produkte und Kategorie aufgefüllt haben. Wir kopieren das gleiche und wir übergeben es hier. Also in diesem Fall werden
wir sehen, dass die Bestellartikel mit den Produkten bevölkert wurden
und sie vom neuesten zum ältesten bestellt haben , um keine verwirrenden Namen zu haben. Lassen Sie uns das umbenennen. Zum Beispiel können wir sagen, Benutzer oder ihre Liste. Und hier Benutzerbestellenliste hier auch Benutzer geordnet. Lassen Sie uns den Server laufen. Pm Start. Der Server läuft eine Datenbankverbindung bereit? Das versuchen wir in Postman. Also habe ich hier Bestellungen, bekomme Benutzerbestellungen, und ich gebe die ID des Benutzers, ich seine Bestellungen haben möchte. Also passe ich das hier und ich habe andere Gegenstände. So sieht man sie aus. Und eine andere Bestellung, es hat auch Bestellartikel. Also haben wir die drei Bestellungen für diesen Benutzer. Wir werden hier sehen, der gleiche Benutzername sind die gleiche Benutzer-ID. Es ist immer n gleich 4, 4. Und hier noch eine. Am Ende dieses Abschnitts werden
Sie sehen, dass Sie in der Lage sind, alle Anforderungen oder
jede API zu erstellen , die Sie benötigen, basierend auf den Anforderungen im Front-End. So haben wir zum Beispiel die Bestellungen des Benutzers bekommen und auch wir haben zum Beispiel, wie viele Bestellungen ich in meiner Ausgabe habe. Das dreht sich alles um APIs. Im nächsten Abschnitt werden
wir lernen, wie man Dateien auf unseren Server hochlädt, wie Bilder oder einige Anhänge im Allgemeinen. In dieser Vorlesung gibt es Anhang
des Ressourcencodes, wo wir in diesen Aufträgen angekommen sind. Und Sie können es herunterladen und selbst versuchen, einige verschiedene Dinge mit den APIs zu tun, die auf Ihre Bedürfnisse basieren.
53. Produktbild und &: Jetzt kommen wir zum letzten Modul, das sich auf den Rücken und die Entwicklung bezogen. Wir müssen jetzt die Bilder mit unserem Produkt hochladen, wie wir bereits gesehen haben, enthält
das Produkt zwei Felder. Einer von ihnen ist ein Hauptbild und das zweite Feld sind die Bilder. Also, wo wird mehr Beschreibung über das Produkt wie eine Galerie Bilder sein? In diesem Modul werden
Sie sehen, dass der Hauptschritt die Installation der Walter-Bibliothek ist. Library ist eine berühmte Bibliothek, die verwendet wird, um Dateien auf den Server mit Node.JS hochzuladen. Und im zweiten Schritt werden
wir die beste Konfiguration für unsere e-Sharp herausfinden, weil wir diese Bibliothek konfigurieren müssen ,
um die Dateien zu verwenden und auf unseren Server hochzuladen. Die dritte, werden wir sehen, wie man das Ziel verwendet und die Dateinamen hochgeladen. Immer wenn der Administrator eine Datei oder ein Bild hochlädt, muss
er den Dateinamen angeben. Aber nein, wir können das nicht für den Admin oder für den Benutzer tun. Wir müssen nicht zulassen, dass er die Akte nennt. Sie können jede Datei hochladen und sie wird in unserem Server codiert werden. Verwendung von Postman ist auch sehr wichtig für unseren Fall hier, um den Bild-Upload zu testen.
Wir werden sehen, wie man den Bild-Upload mit
einem Postboten testen kann, indem man eine Datei oder mehrere Dateien hochlädt. Und wir werden dem Benutzer nicht erlauben, etwas hochzuladen. Wir brauchen ihn, um nur bestimmte Arten von Bildern hochzuladen, wie mit PNG-Erweiterung für J Beck. Und natürlich, das alles für eine einzige Datei getan. Jetzt müssen wir die Bibliothek erweitern, um es möglich zu machen, mehrere Dateien hochzuladen. Und es werden mehrere Dateien benötigt, damit wir viele Bilder für die Produktgalerie hochladen können. Und schließlich werden wir sehen, wie man dieses Produkt mit
den Bildern und den Galeriebildern holt , um sie im Frontend zu sehen. Natürlich werden wir nur die URL des Bildes abrufen. Ich hoffe, Sie werden dieses Modul genießen und sehen Sie in der nächsten Vorlesung, wo wir beginnen, Mörtelbibliothek zu installieren.
54. Server --Upload: Okay, also müssen wir zuerst das Back-End konfigurieren, um das Hochladen der Dateien zu akzeptieren. Um dies zu tun, müssen wir eine Bibliothek namens Walter installieren. Wie jede Bibliothek installieren wir npm Walter. Und damit installieren wir die Bibliothek und verwenden sie, um Dateien auf unseren Server hochzuladen. Und wie immer tun wir konstant, Walter und benötigter Mörtel. Lassen Sie uns die Dokumentation dieser Bibliothek sehen. Wenn Sie zu Google gehen und Motor eingeben, werden
Sie die MPM-Pakete sehen,
die npm-Website , wo wir die gesamte Nutzung dieser Bibliothek haben. Um eine detailliertere Nutzung oder aktuelle Nutzung zu sehen, können
Sie auf die Homepage der Bibliothek gehen. Also hier klicke ich darauf und es würde mich auf die Homepage der Mörtelbibliothek bringen. Die einfachste Verwendung dieser Bibliothek wird also wie folgt sein, wie es in der Dokumentation ist. Also zuerst brauchen wir ein Formular und dieses Formular wird vom Postboten zur Verfügung gestellt, wie wir später sehen werden. Und die erste Verwendung hier, dass wir die molto-Bibliothek aufrufen und dann mit einem Ziel auf unserem Server des Ordners konfigurieren können. Wenn der Benutzer also eine Datei über das Formular hochlädt, wird
sie im Upload-Ordner gespeichert, sich im Stammverzeichnis der Back-End-Anwendung befindet. Und danach, in jeder Post-Anfrage, zum Beispiel, haben
wir ein Produkt Beiträge müssen wir auch
nicht nur die URL und die Funktion der Anfrage und Antwort übergeben , wir müssen auch den Upload übergeben, ich meine den Upload -Konfiguration von Walter. Also hier können wir den Upload übergeben und wir sagen eine einzige, wir übergeben den Feldnamen
, der vom Frontend gesehen wird. Wie Sie hier sehen, heißt
der Feldname Avatar, und hier wird er in der Anfrage übergeben. Aber hier wird die hochgeladene Datei genau den gleichen Namen haben, wo sie vom Benutzer hochgeladen wurden. So werden wir ein Problem haben, wenn ein Kunde, oder leider, der Administrator wird die Datei hochladen. Er wird zum Beispiel
eine andere Datei mit dem gleichen Namen haben. Dann wird diese Datei die alte Datei ersetzen. Und in diesem Fall haben wir ein Problem zwischen den Produkten kann ich einige Produktnamen oder einige Produkte Bilder verlieren. Der beste Weg, den wir brauchen, um
mehr Kontrolle über die Benennung der Dateien und die Benennung des Ziels zu haben . Zum Beispiel müssen wir, wenn die hochgeladene Datei hochgeladen wird, müssen
wir sie irgendwie in
einen eindeutigen Namen umbenennen und dann auf unserem Server speichern. Um dies in mehreren Bibliotheken zu tun, gibt es eine andere Möglichkeit, eine vollständige Kontrolle über den Namen von Dateien zu haben, die als Datenträgerspeicher bezeichnet wird. Und mit diesem Beispiel werden
wir unsere Upload-API erstellen. Also werden wir diesen Teil verwenden. Nehmen wir es genau dasselbe und kopieren Sie es in unsere Anwendung. Und wir werden sagen, dass Speicher Walter Disk Storage ist
, der zwei Felder hat, die Steuerung des Ziels und die Kontrolle des Dateinamens. Das Ziel wird eine Funktion sein, in der es die Anfrage
selbst und die Datei und den Callback hat . Der Rückruf wird zurückgegeben, wenn ein Fehler
beim Hochladen vorliegt und wir weisen das Ziel darin zu. Also hier, lassen Sie uns unser Upload-Ziel setzen. Wir können es öffentlich und Uploads nennen. Also wir hier, wir werden einen Ordner namens öffentliche Uploads haben. Wir können diesen Ordner erstellen. Also können wir hier im Back-End sagen, wir können Uploads sagen. Und drinnen, oder tut mir leid, wir könnten zuerst die Öffentlichkeit haben. Öffentlich. Und es ist öffentlich wird in der Root-Ebene sein. So wird es haben, zum Beispiel hier. Und die Öffentlichkeit, der Upload-Ordner wird darin sein. Also hier haben wir jetzt öffentliche Uploads. die Datei also in Zukunft Wenn wirdie Datei also in Zukunfthochladen, werden
wir sie hier direkt in den öffentlichen Uploads sehen. Im Dateinamen. Es wird das Gleiche sein. Es enthält die Rock-Anfrage und die Datei. Und wir müssen die Datei irgendwie umbenennen, um sie an unsere Bedürfnisse anzupassen und wie sie in Uploads zu finden ist. Es gibt also einen anderen Weg, wie er hier erschafft. Zum Beispiel, die, einige zufällige Mathematik eine zufällige Benennung der Anwendung oder über die Datei
haben. Und dann legte er den ursprünglichen Dateinamen mit Bindestrich und dem einzigartigen Suffix, das er vorher erstellt hat. Lass uns einen anderen Weg machen. Also würde ich eine Konstante schaffen. Nennen wir es feiner Name. Und dieser Dateiname wird die Datei selbst sein, die wir diesen ursprünglichen Namen erhalten haben. Es ist bereits definiert. Und dann sagen wir,
irgendwie, um die Leerzeichen zu ersetzen, ist
es nicht schön, Leerzeichen in der Benennung der Dateien auf dem Server zu haben. Denn wenn Sie die URL haben, haben
Sie eine hässliche URL, wo sie wie durch kaufmännisches Und-Zeichen t2 für die Leerzeichen ersetzt wird. Aber hier können wir genau unsere ersetzt haben die Räume durch Split. Also teile ich den Dateinamen basierend auf dem Leerzeichen und dem Ersetzen oder Verbinden. Wieder dieser Raum mit einem Bindestrich. Sie können auch einen anderen Weg verwenden
, der zum Beispiel Punkt ersetzt jedes Leerzeichen durch einen Bindestrich. Beide Wege sind in Ordnung. So können wir auch ein Präfix oder Suffix zu diesem Namen hinzufügen. Also hier können wir den Dateinamen sagen. Und zum Beispiel können wir jetzt Datumsmenge sagen. Also hier DataNode jetzt Methode, wenn wir es sehen, wird
es die Nummer des Tages zurückgeben. So können wir es mit der Konsole des Google Chrome versuchen. Du kannst jetzt Date sagen. Und Sie werden sehen, dass Sie jetzt die Nummer des Datums und der Uhrzeit erhalten haben. Dies ist also eine große eindeutige Nummer, um unsere Dateien zu erstellen. Danach haben wir eine Konstante geschaffen. Machen wir es als Konstante, nicht als VAR. Und diese Konstante wird Upload genannt. Nennen Sie es erneut, zum Beispiel Upload-Optionen. Und diese Upload-Optionen, müssen
wir es an unsere Post-Anfrage übergeben, wo wir
das Produkt genau die gleiche Art und Weise erstellen , wie es in Malta Bibliothek beschrieben wird. Also, wenn wir hier sehen, dass wir auch die Upload-Single und Avatar und den Feldnamen haben. Feldname, wir müssen es vom Frontend senden. Also hier sagen wir Upload-Optionen, Punkt, Single, und der Feldname, an den ich vom Front-End senden möchte. Also sage ich, zum Beispiel, Bild. Aber hier, wenn wir das Produkt erstellen, analysieren
wir Anfrage Punkt Körper Punktbild. Das ist falsch. Wir müssen dieses Feld bearbeiten, um den vollständigen Pfad des Bildes zu haben. Also, ich bin Walter hat uns bereits mit dieser Anfrage geschickt, die Akte. So können wir zum Beispiel nicht sagen, Konstante Dateiname ist Anfrage Punkt Datei, Punkt Dateiname. Und dieser Dateiname kommt von hier, wo wir den Dateinamen der hochgeladenen Datei einrichten. Also werden wir den Namen genau so haben, wie wir ihn auf diese Weise haben. Wie der ursprüngliche Dateiname, ersetzt durch Bindestriche und dann Bindestrich, wissen sie es nicht. Machen wir es auf diese Weise. Wir haben einen Dateinamen und dann setzen wir den Dateinamen hier. Aber wenn ich diese Daten im Frontend abrufen möchte, und ich möchte das, ODER zum Beispiel, das Bild im Frontend anzeigen. Ich werde das Problem haben. Ich bekomme nur den Dateinamen. Zum Beispiel würde ich Bild 300,
300 Punkt J Beck bekommen . Und das ist ein Problem für uns, weil
im Frontend den ursprünglichen Pfad der Datei nicht kennt. Wir müssen irgendwie den vollständigen Pfad mit der URL auch des Backends haben. Also werde ich http,
localhost 3000 und den Upload-Ordner sagen . Und dann das Bild mit dem Namen und der Erweiterung. Wir fühlen uns auch hier, um die Erweiterung hinzuzufügen. Also haben wir den Dateinamen nur so. Wir müssen auch die Dateinamenoptionen hier bearbeiten. Um auch mit der Erweiterung zu haben. Wir werden das sehen, wenn wir die Datei in den nächsten Vorträgen validieren. Aber jetzt konzentrieren wir uns auf diesen Teil, dass wir die vollständige URL benötigen, nicht nur den Dateinamen. Dafür müssen wir irgendwie diese Zeichenfolge bauen. So können wir sagen, konstant. Wir können Basispfad sagen, wie der Basispfad von ihrer Anwendung. Und wir können es irgendwie mit Backticks tun, wie Anfrage Punkt. Es hat ein Feld namens Protokoll. Und dieses Protokoll wird für mich das HTTP zurückgeben. Und dann werden wir sehen, dass wir Doppelpunkt Schrägstrich haben und wir müssen den Host übergeben. So können wir es auch auf die gleiche Weise tun. Wir können sagen, Anfrage dot get,
erhalten ein bestimmtes Feld namens Host. Dies ist eine Möglichkeit, den Host von der Anfrage zu erhalten. Jetzt bauen wir unseren Basispfad auf. Lass uns vier hinzufügen. Es ist auch der Teil, wo wir sagen, der Ordner, in dem es hochgeladen wird. Also müssen wir auch diesen Teil hinzufügen. Also können wir es so sagen. Und dann fügen wir nur den Dateinamen hinzu. Also können wir hier sagen, danach haben wir Backticks, Basispfad und den Dateinamen. Auf diese Weise erstellen wir unsere API-URL oder hochgeladene Datei-URL. Auf diese Weise haben wir den Basispfad ist dieser Teil und der Dateiname, der dieser Teil ist. Versuchen wir das jetzt mit dem Postboten. Und probieren Sie aus, ob alles gut funktioniert.
55. Bild-Upload mit Postman testen: Jetzt testen wir unsere Änderungen mit Postman. Sie erinnern sich, wir haben hier das Bildfeld erstellt, das den Pfad und den Dateinamen hat, der hochgeladen wird. Ich gehe zum Postboten. Wir müssen eine Post-Anfrage auf der Produkt-API erstellen
und die Autorisierung mit dem Barriere-Token hinzufügen, das wir vorher erhalten haben. Und wir haben das Token hier, um Sie daran zu erinnern, dass
wir diesen Token haben, nachdem wir einen angemeldeten Benutzer erhalten haben. Also, hier gehe ich. Und dann schaue ich in einen Benutzer mit seiner E-Mail und seinem Passwort, dann bekomme ich das Token. Das hier. Wenn Sie nicht wissen, wie Sie dieses Token erhalten, was wir das im Kapitel des Benutzers erklärt haben. Okay, aber jetzt, wie wir Postman testen können, um Dateien hochzuladen. Sie erinnern sich, dass wir den Text der Anfrage als JSON gesendet haben, und wir haben den JSON hier erstellt und wir haben den Namen
des Produkts oder die Beschreibung des Produkts oder die Beschreibung und den Preis angegeben. Aber hier wird es ein bisschen anders sein. Im Frontend wird es so etwas wie eine Form sein. Formular war Felder wie Sie dort rechts auf dem Bildschirm sehen. Also hier haben wir ein Feld, in dem wir es ausfüllen und sie an das Backend senden werden. Und das Dateifeld, in dem der Benutzer eine Datei hochladen kann. Diese wird mit einer Datei Daten gefüllt, und die Dateidaten werden über ein Formular Daten an das Backend gesendet werden. Also müssen wir so etwas wie ein Formular Daten und geprägten Mann erstellen. Wenn Sie ein Formular simulieren möchten, können
Sie Formulardaten erstellen und jedes Feld wird hier mit seinem Wert benannt. Zum Beispiel werde ich hier den Namen des Produkts haben. Und zum Beispiel wird das Produkt, das ich posten möchte, Produkt sechs sein. Und ich möchte auch, zum Beispiel, Beschreibung des Produkts. Und hier wird Produkt sucht Beschreibung sein. Also müssen wir irgendwie alle Felder setzen, die wir wollten, wie wir zuvor gesehen haben, das Produktmodell, das wir hier haben. Die Beschreibung liest, Beschreibung, Bilder und alles hier. Also müssen wir das Bildfeld haben, lassen Sie mich die Felder hier im Postboten spüren. Und dann werden wir über die Bilder sprechen. Hier haben wir also alle Formularfelder ausgefüllt , die wir an das Backend senden mussten und mit ihrem Wert. Also für das Bild hier wird
es evaluieren, wird
zum Beispiel nicht Texte wie hier
oder ein Wert oder eine Zahl oder ein Boolescher Wert sein zum Beispiel nicht Texte wie hier . Es wird eine Datei sein. Also, wie können wir das als Akte machen? Es ist sehr einfach. Wir haben Postbote, Es gibt einen Trick, dass, wenn Sie
die Maus setzen, das Feld, wo wollen Sie ändern? Sie können festlegen, dass der Typ dieses Feldes eine Datei sein kann. Wenn Sie die Datei ablegen, haben
Sie die Möglichkeit, eine Datei von Ihrem PC auszuwählen. Genau so, wie Sie eine Datei im Webformular hochladen. Also lassen Sie uns ein Bild auswählen. Ich habe hier, viele Bilder, zum Beispiel, dieses. Und lasst es uns hochladen und die Postanforderung senden. Wir werden sehen, dass die Post-Anfrage genau so erstellt wird, wie wir es im Back-End gemacht haben. Und wir haben das Bild als vollständige URL. Und die Bilddatei mit der gleichen Erweiterung hier. Aber wenn Sie hier sehen, dass wir eine Erweiterung und dann die Benennung haben, so haben wir ein Problem hier. Also müssen wir diese Erweiterung irgendwie ausschließen und diesen Punkt jetzt nach setzen, und dann setzen wir das Aussterben am Ende. Lasst uns das schnell machen. Wir werden ihre Konfiguration hier der Dateinamen
in Walter ändern , um den abgeleiteten Dateinamen mit der Erweiterung zu erhalten. Also lasst uns diesen Teil mit den Backticks ändern wird schöner im Code sein. So können wir den Dateinamen Bindestrich haben, dieses Datum doc jetzt. Und wir müssen hier irgendwie die Erweiterung hinzufügen, damit wir Punkt
sagen können und hier wird es die Erweiterung sein, von der ich die Erweiterung bekommen werde. In der nächsten Vorlesung werden
wir sehen, wie man diese Dateien validiert, die zum Backend kommen. Daher müssen wir den Benutzer nur bestimmte Art von Bildern hochladen. Wir brauchen ihn, um nur JPEG und PNG hochzuladen. So können wir ihn nicht applaudieren lassen, zum Beispiel eine PDF-Datei oder zum Beispiel eine XML-Datei. Also brauchen wir irgendwie das Back-End, um eine Anfrage abzulehnen, wenn es kein Bild gibt. Das, was wir in der nächsten Vorlesung tun werden.
56. Uploaded: Okay, jetzt müssen wir unsere Erweiterung erstellen. Aber zuerst sagten wir, dass wir die hochgeladenen Dateien vom Benutzer validieren müssen. Um dies zu tun, müssen wir eine Liste von Dateien erstellen , die das vollständige Backend akzeptieren dürfen. So können wir eine Konstante definieren. Wir sagen, Dateityp-Karte. Und diese Dateitypzuordnung enthält eine Liste von Erweiterungen, die in mein Back-End hochgeladen werden dürfen. Das erste Feld wird Bild PNG sein. Und dann PNG. Warum ich es auf diese Weise getan habe. Also hier haben wir den Schlüssel als Bildpunkt PNG und der Wert ist ein PNG. Dies brauchen wir das wegen des Mime-Typs. Mime-Typ. Wenn Sie es Google, es ist sofortiger Typ und bekannt als Mehrzweck-Internet-Mail-Erweiterungen oder Mime-Typ. Und dies ist ein Standard, der die Art und das Format einer Dokumentdatei angibt. Jede Anfrage wird an das Backend gesendet. Und die Datei, die die Datendatei oder die Dateidaten enthält, hat auch einen MIME-Typ. Ein Mime-Typ hat ein Format wie dieses. Also bekomme ich und PNG-Dokument dxdy. Auf diese Weise kann
ich definieren, was der Typ der Datei ist, die zum Backend kommt. Die drei wichtigsten Typen, die wir in unserem Back-End benötigen, sind PNG, JPEG und JPEG. Also hier werden wir diese Typen haben. Und in Walter, wenn ich den Dateinamen konfigurieren möchte, kann
ich hier etwas namens Mime-Typ finden. MIME-Typ enthält also die Informationen oder die Dateiinformationen mit der Tintenstation des MIME-Typs hier. Um also das richtige Aussterben zu haben, werden
wir es auf diese Weise tun. Const-Erweiterung gleich
dem Dateityp lab und den Wert des File-lot MIME-Typ abrufen. Also hier wird es zu diesem Array gehen und den Mime-Typ nehmen
, der einer von diesen kommt, und dann die Erweiterung als Wert zuweisen. Und hier bekomme ich den Wert oder die Erweiterung zu meinem Dateinamen. Okay, wir haben über die Validierung der Datei gesprochen. Also müssen wir die Datei irgendwie überprüfen, ob sie hochgeladen werden darf oder nicht. Im Rückruf des Ziels können
Sie Fehler definieren. Wenn also ein Fehler vorliegt, wird
der Callback es hier werfen. Also zuerst können wir eine Konstante tun ist gültige Datei zum Beispiel. Und wir werden das gleiche Konzept hier verwenden. So wird es den Mime-Typ erhalten und überprüfen ob er in der Karte gefunden wird, die ich in meinem Back-End zugewiesen habe. Und in Node.JS können wir einen Fehler definieren. Also kann ich hier sagen, lassen Sie Upload-Fehler ist gleich dem neuen Fehler. Und wir können sagen, dass der Fehler ein ungültiger Bildtyp ist. Und dann können wir überprüfen, ob es gibt, ist gültig. Dann machen Sie diesen Upload-Fehler als Nonne. Und dann verwendet Upload-Fehler im Callback. Wenn die Datei also gültig ist, gibt es keinen Fehler und der Callback wird ausgeführt. Also erinnern Sie sich, wir haben mit Postman eine Datei hochgeladen und sie hat diesen Namen. Also jetzt werden wir dieses JPEG hier nicht haben. Wir werden es am Ende haben. Vielleicht wird es hier bleiben, aber wir werden zumindest eine Verlängerung am Ende haben. Testen wir das mit einem Postboten. Jetzt, mit unserem Formular, habe ich die gleichen Daten, das
gleiche Bild, das ich hochgeladen habe. Senden Sie diese Anfrage, ich habe ein Bild hochgeladen. Und lasst uns die Erweiterung überprüfen. Wir werden sehen, es hat die Erweiterung am Ende und den Dateinamen. Und hier ist das Bild funktioniert gut. Lassen Sie uns jetzt versuchen, eine Datei hochzuladen, aber nicht das Bild. Wir können sagen, zum Beispiel, ein PDF. Also habe ich hier eine Test-PDF. Ich werde es hochladen. Und wir haben den Fehler bekommen. Also haben wir einen Fehler bekommen, diesen ungültigen Bildtyp
, den wir hier erstellt haben. Also hier im Frontend sahen
wir, dass wir beim Hochladen von PDF das Problem bekommen haben. Aber was zum Beispiel, J peg, senden Sie diese Anfrage. Wir haben kein Problem. Wir haben den vollen Weg und wir haben auch die Erweiterung. Und jedes Mal, wenn ich Upload-Anfragen mache, bekomme
ich eine neue Daten und ein neues Datum und die Datei, es ist das gleiche, aber es wird wieder mit einem anderen Namen hochgeladen. Gehen Sie zu unserer Datenbank auf Atlas, können
wir die Datei oder das Produkt, das erstellt wird überprüfen. Wir werden sehen, dass das Produkt das Bild hat und es eine vollständige URL hat. Dies wird also von überall in unserer Anwendung zugänglich sein. Aber wir müssen so etwas wie von der Authentifizierung ausgeschlossen haben. Denn wenn Sie sich erinnern, wird
alle API authentifiziert. Wir können also nichts tun, ohne sich authentifizieren zu lassen. Aber das muss öffentlich sein, was wir in den nächsten Vorträgen sehen werden. In der nächsten Vorlesung werden
wir sehen, ob die Datei wirklich existiert. Wenn es also keine Datei oder kein Bild für das Produkt gibt, müssen
wir die Anfrage ablehnen.
57. Bild-Upload mit der Product: Was ist, wenn das Frontend mir ihre Anfrage ohne Datei sendet? Dann würde das erforderliche Bildfeld verweigert werden, damit umzugehen. Lassen Sie uns zuerst überprüfen, ob wir eine Datei in unserer Anfrage haben. Also gehe ich hier und erstelle eine Konstante, nenne sie Datei und gebe dieser Konstante den Wert der Anforderungspunktdatei. Und genau mit der Kategorie können
wir es genauso mit der Datei machen. Also sage ich, wenn es keine Datei gibt, dann gebe dem Benutzer einen Fehler zurück, dass es keine Datei gibt. Auf diese Weise werden wir sicher sein, dass unsere Anfrage nicht ohne eine Datei übergeben wird. Wenn wir zu Postman gehen und die Anfrage ohne Datei senden, werden
wir bekommen, dass es kein Bild in dort Anfragen gibt. In der nächsten Vorlesung werden
wir sehen, wie Bilder verwendet werden, um mehrere Bilder hochzuladen, die zum Beispiel
eine Galerie über das Produkt sein werden . In einer Anfrage sendet
der Benutzer mehrere Dateien, nicht nur eine Datei. Und das wird im Bildfeld passieren.
58. Bild-Upload mit der Produkt: Wenn wir gehen Woche, um ein Produkt zu aktualisieren, auch, müssen wir über das Bild kümmern. Was also, wenn der Benutzer ein neues Bild in sein Produkt hochladen
möchte, als ob er das Bild selbst aktualisieren möchte. Dafür werden wir die gleichen Schritte machen, die wir für die Post getan haben. Daher müssen wir die Upload-Optionen auch der PUT-Anfrage hinzufügen. Also haben wir es hier hinzugefügt und dann werden wir einige Änderungen hier vornehmen. Also zuerst, wenn der Benutzer kein Bild hochlädt, dann möchte ich das alte Bild behalten, das in der Datenbank ist. Aber wenn er ein Bild hochlädt, dann muss ich das Bild senden und erneut in
die Dateien hochladen und dann die neue URL zur Datenbank hinzufügen. Lasst uns diesen Hund zum Echo bringen. Also zuerst möchte ich das Produkt finden. Also füge ich hier eine Konstante hinzu, die ein Produkt genannt wird und das Produkt nach ID finden, beantrage dot powerapps dot ID, und dann überprüfe ich, ob es kein Produkt gibt, dann für mich den Status 400 zurückgegeben, dass es ungültiges Produkt ist, Okay, Jetzt ist alles in Ordnung. Dann garantieren wir, dass der Benutzer wirklich ein bestimmtes und angekommenes Produkt eingibt. Eine andere Sache, dann werden wir die Datei selbst bekommen. Also werde ich sagen const Datei und diese Datei, wir haben mit ihrer Anfrage Punktdatei kommen, wie wir es genau mit einer Post-Anfrage getan haben. Und dann werde ich einen Pfad definieren, der Bildpfad genannt wird. Und dieser Bildpfad ist leer. Ich werde es verwenden, um den Pfad des Bildes zu füllen. Entweder wird es das alte sein, das bereits in der Datenbank ist, oder dann Sie Dateipfad, wenn der Benutzer ein neues Bild in dort PUT-Anfrage hochgeladen hat. Also als Logik werde ich sagen, ob Datei, dann genau wie wir mit der Post-Anfrage machen. Ich werde einen Dateinamen und dann den Basispfad definieren. Und ich werde sagen, dass der Dateiname oder der Bildpfad genau so sein wird, wie wir es hier haben. So werden wir den Basispfad und auch den Dateinamen zusammen als Bildbad haben. Und sonst, wenn es kein Bildbad gibt oder wenn es Datei gibt, dann würde ich sagen, dass der Bildpfad der gleiche ist wie der alte Bildpfad, der zuvor definiert wurde, als das Produkt erstellt wurde. Also würde ich sagen Produkt, das Bild, das alte, weil ich das produktive Jahr bekam und ich garantiere Ihnen, dass das Produkt wirklich existiert. Also werfe ich keinen Fehler an den Benutzer. Also sicher, das Produkt hat hier einen Wert. Und dann werde ich sagen, wenn das fünf ist, dann lade die Datei hoch und gib mir die Vergangenheit. Andernfalls geben Sie den Bildpfad wird das Produktbild sein, das vorher war. Und dann werde ich hier sagen, dass das Bild der Bildpfad mit den aktualisierten Daten sein wird. Aber hier lassen Sie uns dieses ein Produkt umbenennen. So können wir hier ein Produkt sagen, um das Produkt zu bekommen. Und wir können hier sagen, aktualisiertes Produkt und das aktualisierte Produkt, ich finde es und dann überprüfen Sie es und senden Sie diese Anfrage mit den aktualisierten Daten zurück. Dies sind also die erforderlichen Änderungen für die Post-Anfrage. In diesem Fall erhalten Sie keine Fehler und Sie werden Probleme haben, wenn Sie das Bild erneut hochladen oder wenn Sie das Bild nicht hochladen. So hat der Benutzer hier die Option, er kann Bild hochladen oder nicht in der PUT-Anfrage.
59. Produktgalerie: Okay, hier hatten wir eine einzelne Datei, also haben wir nur eine Datei in die API hochgeladen. Aber hier brauchen wir mehrere Dateien für die Produktgalerie. Auf die gleiche Weise können wir diese Post-Anfrage ändern, um auch mehrere Dateien zu akzeptieren. Aber lassen Sie uns es ein wenig komplizierter machen, ein echtes praktisches Beispiel zu haben. Normalerweise, wenn Sie ein Produkt aktualisieren oder ein Produkt hinzufügen, ist
das zweite, was Sie tun, das Hochladen der Bildergalerie. Und das passiert normalerweise in den Webshops. Nachdem Sie ein Produkt erstellt haben, ist alles in Ordnung. Dann gehen Sie und bearbeiten Sie das Produkt erneut, um die Bildergalerie zu löschen. Lassen Sie uns also ein bestimmtes ABI erstellen, das nur zum Hochladen der Galerie des Produkts dient. Bei dieser API handelt es sich um eine Update-Anfrage, keine Post-Anfrage. Also brauchen wir die Post-Anfrage. Also kopiere ich diese Post-Anfrage. Gehen wir zum Ende und fügen Sie es hier hinzu. Und weiter heraus, wir können die Produkt-ID behalten und auch wir können ihren Zweifel
hinzufügen, wo wir nur die Galeriebilder aktualisieren werden. Also hier können wir Galeriebilder hinzufügen. Und dann die ID des Produkts. Wie wir zuvor in der Post-Anfrage des Produkts gesehen
haben, haben wir auch die Upload-Option einzelnes Bild hinzugefügt. Wir können es auch der PUT-Anfrage hinzufügen. So können wir hier Upload-Optionen hinzufügen, aber nicht einzelne. Wir werden Array sagen. Also werden wir vom Frontend unser Array von Dateien erwarten, nennen
wir es emittiert. Und wenn Sie hier bemerken, dass die Array-Methode mir auch eine maximale Anzahl gibt. So können Sie maximale Datei-Upload-Größe zulassen. Also zum Beispiel, ich werde sagen, maximal, ich brauche 10 Dateien oder 20 Dateien in einer Anfrage. Also lassen Sie es uns als 10. Lasst uns mehr unser Code sterben. Also lasst uns das in einer neuen Zeile haben. Also können wir nicht sagen, dass dieser hier ist. Und hier, die asynchrone Methode. Und hier haben wir den Port und wir haben hier den Inhalt unserer PUT-Anfrage. So wird die Update-Anfrage ihres Produkts genau diese Daten aktualisieren, aber wir werden nur die Bilder haben, nicht alle Daten. So können wir das Gleiche tun wie hier. Es ist kopieren Sie diesen Teil, um zu sehen, ob der Benutzer die genaue oder die richtige ID übergeben. Wir müssen ihre Kategorie nicht überprüfen, da wir sie nicht aktualisiert haben. Also lasst uns das auch haben. Aber wie gesagt, wir hatten alle Daten. Wir müssen nur das Bild aktualisieren. So Bildfeld wird Array von Bildern sein. So wie wir hier gesehen haben, Array von Bild-Strings oder Pfad des Bildes. Also müssen wir hier irgendwie Array von Strings bauen. So können wir sagen, Bildpuffer hören. Und dieses Bild Spotter wäre ein wertvolles Array von Strings. Also, wie werden wir dieses Array zuerst in dieser Anfrage bauen, wie wir zuvor gesehen haben, dass wir eine Punktdatei anfordern können. Oder wenn Sie sehen, dass wir eine Datei auch nicht nur Datei haben. So können wir sagen, Dateien werden konstante Dateien sein. Und genau wie zuvor können
wir überprüfen, ob es Dateien gibt. Dann werde ich in diesen Dateien Schleife und bauen die Bilder stört Array. Also hier werde ich das nach oben bewegen und sagen Dateien Punktkarte. Und das wird Akte haben. Und innerhalb dieser Methode der Datei können
wir sagen, Bildpfad ist Punkt Push, der feine Punkt Dateiname. Aber wir müssen nicht nur den Dateinamen schieben. Wir müssen auch die Basis-URL und auch mit der Erweiterung schieben. Also, wenn Sie sich erinnern, haben wir hier die Basis-URL erstellt, die wir für die Post-Anfragen erstellen. So können wir diesen Teil auch kopieren und zur
Put-Methode gehen und hier die Basis-URL oder den Basispfad sagen. Und wir schieben den Basispfad mit dem Dateinamen. Und hier können wir das Produkt zurückgeben. Genau wie die PUT-Anfrage können
wir überprüfen, ob es ein Produkt gibt, dann sind das Teiche die Daten des Produkts. Andernfalls wird es ein Fehler sein. Also kopieren wir diesen Teil und platzieren ihn hier. Lassen Sie uns das mit Postman auf das testen, was wir mit Postboten zu tun haben, dass wir mehrere Dateien hier platzieren. Also lassen Sie uns ein Feld erstellen, nennen Sie es zum Beispiel Bild. Und dieses Bild wird eine Datei sein. Und wir wählen zwei oder Bild zum Beispiel. Und wir vergessen das nicht, um die API zu ändern. Also hier wird Galerie-Bild und die Anfrage wird gestellt. Und wir brauchen auch die ID des Produkts. Genau das hier. Lassen Sie uns unser Produkt bekommen, oder Produkt ist Produkt sechs, die wir zuvor erstellt haben. Und jetzt werden wir die ID hier hinzufügen. Und wir werden diese Anfrage senden. Wir haben unseren Fehler, ich habe hier vergessen, Produkte hinzuzufügen. Also werden wir den richtigen Weg haben. Jetzt versuchen wir es. Und dann werden wir sehen, dass das Produkt aktualisiert wurde. Und wir haben zwei Bilder in der Galerie und Hauptbild, Es ist immer noch da. Lassen Sie uns unseren Upload-Ordner überprüfen. Wir werden sehen, dass wir zwei Bilder haben, dieses und dieses. Also im Frontend werden wir
immer unsere Galerie aktualisieren oder ein Produkt aktualisieren und die Galeriebilder hinzufügen. Das ist alles über diesen Abschnitt. Im nächsten Abschnitt werden
wir sehen, wie man die Bild-URL abruft, damit wir sie im Browser und im Frontend sehen können, da sie jetzt gesperrt ist und wir keinen Zugriff darauf haben weil sie mit unserer API geschützt ist -Authentifizierung.
60. Upload-Ordner aus der Authentisierung: Lassen Sie uns nun versuchen, diese URL zu erhalten und sie in den Browser, die URL des Bildes. Also legen wir es in den Browser und wir werden sehen, dass der Benutzer nicht autorisiert ist. Dies, weil, wenn Sie sich erinnern, in unserem JWT, haben wir definiert das Bad ist, die für die Öffentlichkeit erlaubt sind. Daher müssen wir den Upload-Ordnerpfad hinzufügen, damit jeder diese Bilder sehen kann. Andernfalls werden wir ein Problem haben. So zeigt der E-Shop die Bilder des Produkts nicht an. Also lasst uns das hier kopieren. Es wird genau die gleichen Git und Optionen sein. Wir müssen diesen auch durch den Pfad des Upload-Ordners ersetzen. Der reguläre Ausdruck dafür ist dieser. Ich habe Schrägstrich, öffentliche Schrägstriche Uploads bei allem kommt danach. Lasst es uns retten. Und lasst uns zu unserem Browser gehen. Aktualisieren. Wir werden einen Fehler sehen, dass wir kein öffentliches Upload-Bild erhalten können. Warum das, weil es sich um einen statischen Ordner handelt. Wir müssen diese öffentlichen Uploads
als statischen Ordner in der Middleware unserer Anwendung definieren . Um das zu tun, müssen
wir zu unserer app.js gehen. Also gehen wir hierher und sagen, Gebrauch. Und dann definieren wir den Pfad, den wir brauchen, um ihn statisch zu machen. Also öffentliche Schrägstriche Uploads. Und dann
gibt es in Express eine Methode zu sagen, dass dies ein statischer Ordner und ein reserviertes Schlüsselwort ist, das für mich den Stammpfad oder den Stammpfad der Anwendung ein schrecklicher Name ist. Und plus der Weg, den ich es als statisch machen wollte. Also, jetzt dieser Pfad, jede Datei kann in sie hochgeladen werden. Es wird nicht als API sein. Es wird wie ein statischer Pfad sein, der die Dateien bereitstellt. Also zurück zum Browser und wir machen eine Aktualisierung. Wir bekommen immer noch den Fehler. Dies, weil ich Schrägstrich hinter der Öffentlichkeit hinzufügen muss. Handeln Sie mit unserem Browser und aktualisieren Sie. Wir werden das Bild sehen, das wir bereits
im Frontend ohne Authentifizierung direkt durch die URL hatten. Jetzt ist unser Backend fertig. Wir haben die Routen, vier Kategorien, Bestellungen,
Produkte und Nutzer erstellt , die wir genau für unseren E-Shop benötigen. Wir werden jetzt zum Front-End-Teil wechseln und Sie werden mehr als neue Dinge sehen und wie wir wieder zu diesem Back-End verbinden und unsere Webshop-Schnittstelle erstellen.
61. Heroku installieren und die Git vorbereiten: Okay, in diesem Abschnitt werden wir unser Backend oder unsere Web-API für Heroku bereitstellen. Heroku ist eines der Tools, das verwendet wird, um das Projekt oder Web-APIs bereitzustellen. Und sie können öffentlich sein und wir können sie in Ihren Projekten verwenden. Sie haben also nicht Ihre API, die nur auf localhost 3000 basiert, wie wir gesehen haben, aber wir werden es auf eine URL setzen und wir können unsere Front-End-Anwendungen damit verbinden. Der erste Schritt, den wir tun müssen, müssen
wir auf eine Website namens Heroku.com gehen und dann werden wir aufgefordert, eingesperrt zu werden. Natürlich, wenn Sie ein paar sind, haben kein Konto hier, können
Sie sich auch registrieren. Die Anmeldung ist sehr einfach. Sie geben nur Vorname, Nachname, E-Mail-Adresse an. Und was ist Ihre Rolle? Land? Und auch, Sie müssen eine Brian-Geld-Entwicklungssprache setzen. Wir müssen NodeJS in unserem Fall setzen und Sie müssen überprüfen , dass Sie kein Spam sind und dann können Sie ein Konto bekommen. Nachdem Sie sich angemeldet
haben, sehen Sie ein Dashboard wie dieses. Also dieses Dashboard, müssen wir
eine Anwendung erstellen , die wir machen es öffentlich für unsere API. Zunächst einmal müssen
Sie eine neue App erstellen. Und diese Erstellung einer neuen App, können
Sie einen beliebigen Namen für Ihre Anwendung geben. In meinem Fall würde ich ihm einen Namen wie e-shop geben, zum Beispiel
Backend. Und vielleicht kann dieser Name nicht verfügbar sein, also müssen Sie einen bestimmten Namen angeben. Vielleicht können Sie wie jedes zufällige Suffix geben. Zum Beispiel können Sie Ihren Nachnamen eingeben. Zum Beispiel werde ich meinen Nachnamen oder meinen Firmennamen angeben. Ich werde sehen, ich würde sagen, wie ein blauer Bits. Also in diesem Fall werde ich e-shop zurück und blaue Bits haben. Und dann wählen Sie Ihre Region ist besser,
die nächste Region zu verwenden , wo es näher für Ihre Zielkunden ist. Also ist es besser für mich in diesem Fall, ich lebe in Europa. Also werde ich Europa setzen und dann müssen Sie auf eine App erstellen klicken. So haben wir jetzt eine Verpflichtung geschaffen. Es gibt einige Anweisungen, die wir zuerst tun müssen. Zuerst müssen wir Heroku CLI herunterladen und installieren. Gehen wir zu diesem Link und überprüfen Sie ihn. In diesem Link können Sie mehrere Optionen für die Installation von Heroku sehen. So zum Beispiel, Sie haben macOS Weg, Sie können Kommentar verwenden, wenn Sie Homebrew haben und auch, wenn Sie Windows haben, können
Sie ein Installationsprogramm installieren. Und auch für Open TO auf diese Weise, die ich gerne immer benutze, ist NPM, NPM global installiert. So können Sie npm installieren dash global, Heroku. Also gehen wir nach Paris und machen das. Also werde ich hierher gehen und mein Terminal öffnen. Ich werde Control J-Taste verwenden, wie wir zuvor gesehen haben. Und dann werde ich sagen, npm installiert minus g Also auf diese Weise werde
ich Heroku Domain Gerät öffentlich installieren, so dass ich Heroku Befehle in meinem Computer verwenden kann. Aber das erste, was ich tun muss, ist vielleicht brauchen wir eine Erlaubnis. Also die Berechtigungen, vielleicht wird es Ihnen nicht erlauben, öffentlich oder global zu installieren. Sie müssen diesem Kommentar sudo vorfixieren. Wie Sie hier sehen, bin
ich nicht r. Ich habe keine Berechtigungen, dies zu tun, also muss ich diesem Befehl sudo vorstellen. So können wir sagen, sudo nmap, aber in Windows, ich denke, Sie werden kein Problem haben. Und dann wird es mich nach meinem Passwort fragen. Und dann werde ich das Passwort setzen und es wird erfolgreich installiert. Nun, wie Sie sehen, wurde es installiert, wir haben jetzt Heroku Befehl. So können Sie zum Beispiel Heroku so
setzen und Sie würden einen Befehl wie Optionen erhalten, die Sie haben,
einige Optionen, die Sie für Ihre Heroku Kommentare verwenden können. Gehen Sie also zurück zu unserem Browser. Nach der Installation gehen wir wieder zu unserer Anwendung zurück und wir müssen gut bearbeiten. Außerdem müssen wir unser Heroku-Projekt oder unser Back-End-Projekt mit Heroku git verbinden. Aber vor allem, das Wichtigste, denn bevor wir diesen Schritt tun, haben
Sie natürlich, eine gitignore Datei
zu erstellen. So werde
ich zum Beispiel in Heroku diese Enddatei nicht bereitstellen. Diese m-Datei enthält meine Verbindungszeichenfolge zur Datenbank ist mein Geheimnis und auch API-URL. Ich werde das nicht zum Heroku Git-Repository schieben. Auf diese Weise müssen
wir eine Datei hinzufügen, die git ignore genannt wird. Also, wenn ich einen guten Kommentar von Heroku verwende, dann wird es nicht die Dateien schieben, die ich spezifiziere. Sie müssen also auch keine Knotenmodule schieben. Monod-Module kommen normalerweise eine sehr riesige Datei, fast 200 Megabyte, weil wir Bibliotheken und deren Abhängigkeiten installieren. Sie müssen nicht auch Node-Module verwenden. So Erstellen erhalten ignorierte Datei, Es ist sehr einfach. Sie müssen nur eine Datei im Stammverzeichnis des Projekts erstellen. Sie müssen also sagen, git ignorieren, bevor Sie einen Schritt machen, der dort erwähnt wird. Also zuerst müssen Sie den Ordner „Knotenmodule“ ignorieren. Also sagen wir Schrägstrich Knoten Unterstriche Module. Und auch wir müssen
die m-file und auch andere Entwicklungsdateien wie hübscher RC ignorieren , wie Sie hier sehen, haben wir diese Datei, damit wir sie auch ignorieren können. Also in diesem Fall haben
wir, wir sind bereit, unser Projekt mit Heroku Repository zu verbinden. Also gehen wir wieder zu den Anweisungen zurück und wir müssen sagen, dass wir hineinkommen. Denn wenn wir nicht
unser Projekt zuvor initialisiert haben , wie wir sahen, dass wir nicht eine gute haben, Wir haben es nicht zu irgendeinem guten verbinden. Also in diesem Fall müssen
wir sagen, get any, okay, Nachdem Sie in es bekommen, werden
Sie sehen, dass es eine Datei in diesem Repository erstellt, die geht oder wie dot kid genannt wird. Und wenn Sie es sehen möchten, können
Sie hier zum Backend-Ordner gehen und Sie werden sehen, dass dieser Ordner und wurde erstellt. Also die nächste Anweisung, die wir brauchen, um Heroku git remote zu verbinden. Aber zuerst müssen wir Heroku Login verwenden. Also schauen wir uns zuerst Heroku an. Also werde ich Heroku Login verwenden und dann wird es mich fragen, wollen Sie den Browser öffnen und Sie können sich dann anmelden. So können wir nicht sagen, ja, wir können jede Taste drücken und dann wird es automatisch den Browser öffnen. Also, wie Sie hier sehen, habe ich eine andere Seite. Es sagt, Blick in Heroku CLI. Ich werde sagen, schauen Sie in und dann angemeldet , weil ich zuvor auf dem gleichen Browser angemeldet bin. Wenn Sie also zurück zum Terminal gehen, wird
es wissen, dass Sie bereits verbunden sind, und dann können Sie Heroku-Befehle verwenden, wie in der Dokumentation erwähnt. Danach müssen wir unser Heroku oder unser Projekt mit Heroku Git-Repository verbinden. Also müssen wir diesen Befehl verwenden, alle diese Befehle, Sie können sie verwenden, wie Sie sehen, sagen Heroku, git remote, und fügen Sie dann E scharfe zurück und blaue Bits. Es ist also genau der gleiche Name der Anwendung. Also lasst uns das machen. Und dann haben wir diesen Kommentar hier basiert. Und dann, wie wir sehen werden, ist das Git-Repository auf diesen Pfad gesetzt. Wenn wir also jetzt unser Projekt bereitstellen oder unseren Code hochladen, um cool zu handhaben, dann wird Heroku alle ihre Dateien
und den Code, den wir von diesem Pfad hochgeladen haben, erhalten oder lesen . In der nächsten Vorlesung werden wir sehen, wie wir auch eine Produktionsdatenbank erstellen können. Wir müssen nicht die gleiche Datenbank verwenden, wie wir sehen, weil wir diese Datenbank
vielleicht zwischen Entwicklung und Produktion unterscheiden können. Wie wir in der nächsten Vorlesung sehen werden.
62. Optional erstellst du Produktions-: Okay, in diesem Vortrag werden wir über die Erstellung einer Produktionsdatenbank sprechen. Wenn Sie also eine Entwicklung machen oder wenn Sie eine Anwendung ausführen, haben Sie
normalerweise eine räumliche Datenbank für Sie, Dinge nur zu entwickeln und zu testen und einen Fortschritt für Ihre Anwendung zu machen. Aber nachdem Sie das Projekt am Leben bereitgestellt
haben, müssen Sie eine Produktionsdatenbank erstellen. In diesem Kurs ist dies optional, damit Sie eine Live-Datenbank oder eine
Produktionsdatenbank erstellen können oder nicht. In diesem Abschnitt oder in diesem Vortrag werden
wir das tun. Wenn Sie sich erinnern, haben wir MongoDB Compass und diese MongoDB Compass Anwendung installiert, können
wir in der Lage sein, Datenbanken zu erstellen und auch wir können Daten importieren und exportieren. Also in unserem Kurs haben wir diese Datenbank verwendet, die E-Shop-Datenbank genannt wird. Jetzt werden wir ein neues erstellen. Wir können es auch E scharf nennen, Datenbank. Und es wäre eine Produktion breit. So können wir das haben und wir können die erste Sammlung erstellen, die zum Beispiel Kategorien genannt wird. Und dann machen wir, erstellen für die Datenbank, und die Datenbank wird erstellt. Also, wie Sie hier sehen, aber wir haben nur einen Tisch. Also, wenn Sie sich erinnern, Ich fügte für Sie zu Beginn des Kurses, einige Dateien, können Sie sie wie als Standarddaten verwenden. Es ist wie die Daten, die wir einfügen, tun die Datenbank. Es ist wie Aussaat. So können wir auch die Aussaat verwenden, die auch hier. Also werde ich das schnell machen. Wie importiere ich Daten mit einem Kompass? Sie müssen nur hier gehen, klicken Sie auf Kategorien, zum Beispiel auf den Sammlungsnamen. Und dann können Sie sagen, Daten importieren. Und dann navigieren Sie zu der Akte, in der ich Ihnen gegeben habe. So gab ich Ihnen zum Beispiel Kategorien oder die Elemente und andere Tabellen. Dafür können Sie für
diese Kategorien verwenden und Sie müssen hier angeben, dass Sie JSON haben. Und jetzt machen wir den Import. Und dieser Import wurde abgeschlossen. Und wir werden sehen, unsere Daten befindet sich hier. Also werden wir das Gleiche für alle Tische tun. Das werde ich schnell vor dir machen. Also habe ich hier einen neuen Tisch erstellt. Ich nenne es Benutzer, oder Benutzer. Und diese Benutzer, ich werde diese Daten auch importieren. Also müssen wir das Gleiche für alle anderen Tabellen tun. Also, jetzt ist meine Datenbank-Produktion voll. Also werden wir diese Datenbank verwenden, aber wir sind nur für ihre Produktanwendung oder die entwickelte Anwendung auf Heroku lokale Entwicklung, wir verwenden immer noch das Problem der Datenbank. Also, wie wir das dynamisch machen können, wie wenn ich ISA für die Anwendung bereitstelle, verwendet Datenbank. Aber wenn ich entwickle, möchte
ich der Anwendung sagen,
okay, benutze diese Datenbank. Es ist also ziemlich einfach. Wir werden diese Umgebungsvariablen konfigurieren, die für
Heroku bevorzugt werden , weil wir
diese Variablen verwenden und wir sie innerhalb der Anwendung verwenden. Und bei der Entwicklung können wir
zum Beispiel diese Verbindungszeichenfolge beibehalten . Aber bei der Produktion werden wir eine weitere Verbindungszeichenfolge haben. Aber hier, wie Sie sehen, dass die Umgebungsdatei nicht bereitgestellt wird, weil wir zu git ignorieren hinzugefügt haben. Dies wird also nicht in der Bereitstellung auf Heroku sein weil Heroku nicht wissen wird, dass wir hier Umgebungsdatei haben.
63. Einstellen von Entwicklungs- und Product Variablen: Okay, jetzt, wie wir der Anwendung sagen können, diese Datenbank der Produktion zu verwenden, nicht die Datenbank der Entwicklung. Zunächst einmal, wenn Sie sich erinnern, haben wir die m-Datei hinzugefügt und in der Enddatei haben wir sie für die
Verbindung mit der Datenbank verwendet, die wir in MongoDB Atlas erstellt haben. So wird die Verbindungszeichenfolge in der m-Datei gespeichert, wie Sie hier sehen, und wir haben vorher darüber gesprochen. Also jetzt werden wir eine Verbindungszeichenfolge haben, die für die Produktion anders ist. Also in diesem Fall, okay, wir verwenden diese Verbindungszeichenfolge hier in Prozessverbindungen zu machen. Aber wie ich Ihnen gesagt habe, dass, wenn wir diese Anwendung bereitstellen, diese M-Datei, hübscher, IC und Node-Modul, sie nicht auf den Server hochgeladen werden. Von wo aus die bereitgestellte Anwendung weiß, welche Verbindungszeichenfolge verwendet werden soll. Denn in diesem Fall, wenn ich bereitstelle, wird
es nicht wissen, welche Verbindungszeichenfolge verwendet werden soll, da sie hier nicht definiert ist. Und dann werden wir einen Verbindungsfehler haben. Also, lassen Sie uns zuerst alles ändern, was wir haben, wie zwei oder in unserer app.js,
alles, was wir ändern müssen, um in der Produktion zu sein. Zum Beispiel, dieser Name, werde
ich eine Datenbank verwenden, aber im Ausland, nicht diese. Also müssen wir das auch ändern. Wir müssen auch einige verwenden, eine andere Variable, die wir es nennen können dB-Namen, zum Beispiel. Und wir können diesen DB-Namen in der Datei geben. So können wir, nachdem das eine Zeile war, können
wir DP-Name sagen. Und dann für lokale, werde ich diese E-Shop-Datenbank verwenden müssen. Aber in der Produktion werden wir eine andere verwenden. Ok, was sonst? Die Anwendung verwendet also auch einen bestimmten Port. Also, wenn Sie die Anwendung in der Produktion starten, wie Sie hier sehen, wenn wir zum Browser zu unserer Anwendung gehen und wir verwenden, sagen
wir, zum Beispiel, öffnen Sie die App hier oben. Dann werden wir eine neue App haben. Wie Sie hier sehen, haben wir den Link, aber er enthält keinen Port oder wie zum Beispiel 3000 oder so. Denn vorher hatten wir wie lokale Gastgeber wie diese und 3000. Also haben wir hier nicht die Tafel. So, wie wir das Board auch dynamisch machen können. Also müssen wir das auch tun, weil es in der Produktion einen anderen Port verwenden wird. Also auch hier müssen wir eine Variable definieren. Wir können es wie eine Konstante geben und wir sagen Port. Und dieser Port wird auch von Umgebungsvariablen kommen. Und es wird Port genannt werden. Wenn kein Port vorhanden ist, verwenden Sie 3000. Also nur für den Fall, wenn dieser Teil nicht kommt oder es mit undefiniert kommt. Also, dann benutzen wir dieses Board hier. Und in meiner Datei kann ich diesen Port definieren. Also können wir auch hier sagen, verwenden Sie den Hafen, wir können sagen, Port wird 3000 sein. Aber denken Sie daran, dies ist nur für die lokale Entwicklung. haben wir nicht für die Produktion. Die Produktion wird es durch einen anderen Port ersetzen. Aber das Schlüsselwort dafür wird es so gekauft werden. So wird Heroku selbst einen Port finden oder erstellen. Normalerweise ist es Port 80, der der Standardport für das HTTP ist. Okay, jetzt haben wir ein Problem. Also, wie die Produktion ohne Verbindungszeichenfolgenvariable. So, wie wir das schaffen können. Also gehen wir wieder zum Browser, in dem wir unsere Anwendung erstellt haben. Und dann werden wir oben etwas finden, das Aktivität oder Einstellungen genannt wird. Und in ihren Einstellungen finden Sie eine offenbaren config vars finden. Das sind also die Konfliktvarianten, die in der Produktion verwendet werden. Also in diesem Fall muss
ich zu meiner Anwendung hier sagen, verwenden Sie die Verbindungszeichenfolge, aber wir sind Produktion eins. Also werde ich wieder zum Browser gehen und dann
eine neue Schlüsselverbindungszeichenfolge erstellen , die sein wird, was es sein wird. Die Verbindung bleibt gleich, aber mit einer anderen Datenbank. Also werde ich das gleiche benutzen. Und dann werde ich sagen, dass nicht E-Shop-Datenbank verwenden, aber jeder davon gehorcht im Ausland. Und auch, wir müssen auch eine andere Sache schaffen, die DP-Name genannt wird. Wir werden diesen Namen scharf verwenden, dass die Basis, also auch hier, E-scharf, das gehorcht auch breit. In diesem Fall wird
die Anwendung wissen, dass es
eine Verbindungszeichenfolge gibt und er würde sie von hier lesen. Darum müssen wir uns keine Sorgen machen. Es ist also besser,
alle Umgebungsvariablen zur Verbindunghinzuzufügen alle Umgebungsvariablen zur Verbindung da sonst unsere Anwendung fehlschlägt. Was wir hier verwenden müssen, API URL, die die gleiche Sache sein wird, die wir dort hatten. Es wird api Schrägstrich v1 sein und wir fügen es Geheimnis hinzu. Das Gleiche. Es sollte auch die gleichen Großbuchstaben oder Kleinbuchstaben sein, da die Groß- und Kleinschreibung beachtet wird. Und wir werden hier das Geheimnis haben, oder Sie können ein anderes Geheimnis verwenden. Wenn ich also meine Anwendung bereitstelle, wird sie nach Prozess suchen. Aber unser lokaler Fehler wird nicht bereitgestellt, weil wir es im guten Ignorieren haben. So wird es nicht auf dem Server sein, so dass Heroku nicht von der Arbeit weiß, um es zu bekommen. Er wird zu den Konfliktvars gehen und dann diese Werte lesen. In diesem Fall haben wir eine andere Datenbank als Produktion und eine Datenbank für die lokale Entwicklung. In der nächsten Vorlesung werden
wir sehen, wie wir das nutzen können und wie wir die Anwendung auf dem Server bereitstellen können.
64. Die App ausführen und testen: Gehen wir nun zurück zur Anweisung zur Bereitstellung der Anwendung. Also, hier, wenn wir wieder zur Anwendung gehen und wir auf Deploy klicken, und wir werden wieder unsere Anweisung sehen. Also haben wir bereits diese Verbindung gemacht und wir haben die Verbindung zwischen der Anwendung und dem Git-Repository von Heroku bereitgestellt oder hergestellt. Jetzt werden wir diese Kommentare ausführen. Zuallererst müssen wir den Code zum Guten hinzufügen, also müssen wir ihn verpflichten. Wenn Sie also nicht wissen, was es ist, ist
es, als würden Sie Informationen darüber geben, wie zum Beispiel welchen Code Sie in Ihr Repository übertragen. Also, wenn ich mich
ändere, sage ich, okay, ich habe das geändert, ich entferne das. Also würde ich in der Commit-Nachricht sagen, dass der Fehler-Handler entfernt wird. Auf diese Weise behalten Sie den Überblick über Ihre Änderungen am Projekt. Also hier können wir das auch mit Heroku machen. Also müssen wir git add dot und dann git commit dash am
machen, es besser machen oder eine Nachricht. Also zuerst, lasst uns das Gute tun. Dies bedeutet, dass wir alle Dateien des Projekts zum
Git-Repository hinzufügen , um sie für das Hochladen auf den Server vorzubereiten. Und danach müssen
wir das Git-Commit machen und dann Bindestrich m machen und dann eine Nachricht angeben. Also zum Beispiel, zuerst bereitstellen, sterben. So können wir auch diese Commit-Nachricht hinzufügen. Danach müssen wir den Code auf die cetera schieben. Wir sind, wie wir das mit diesem Befehl machen, git, push, heroku, master. Also werde ich zum Terminal gehen und dann diesen Befehl hier einfügen. Und dann wird es alle Informationen oder den ganzen Code hochladen, den ich angegeben habe, außer den Dateien oder den Dateien und Ordnern, die ich in git angegeben habe, ignorieren. Also in diesem Fall haben wir alle unsere Dateien der Entwicklung sind da. Wie Sie hier sehen, ist es Dart, stellen
Sie die Anwendung bereit, die Dateien fertig, es, beginnen Sie mit dem Erstellen. Und jetzt zeigt es alle Fortschritte bei der Installation von Bibliotheken. Es installiert auch npm für die
Installation der Pakete, die wir für unsere Anwendung verwendet haben. Und dann wird es Knotenmodule haben, aber auf dem Server, nicht dieses. Danach komprimiert es die Anwendung für eine schnellere Nutzung. Und Sie müssen auch daran denken, die Bilder hochzuladen,
die im Upload-Ordner sind , damit wir die Bilder als auch in der, auf dem Server sehen können. Also, sonst, wenn Sie nicht die Bilder, die ich als auch für Sie angehängt, haben, weil sie auch in der Datenbank sind, die Links zu diesen Nachrichten oder Bildern. Sie müssen sie auch auf Ihren Server hochladen. Damit die Bereitstellung abgeschlossen ist, die Bereitstellung verifiziert, erledigt. Okay, Gehen wir zurück zum Browser und gehen Sie zur Anwendung und aktualisieren Sie hier. Schön. Wir haben eine Nachricht, der Benutzer ist nicht autorisiert. Das ist großartig, denn wenn Sie sich erinnern, haben
wir unsere API autorisiert. Also, wenn Sie sich in den Routen oder in den Helfern erinnern, sagten
wir JWT, dass wir einige Routen von der Authentifizierung ausschließen werden,
zum Beispiel, um ein Produkt zu bekommen oder eine Kategorie zu bekommen. Lassen Sie uns also versuchen, ein Produkt im Browser zu bekommen. Also werde ich hier genau sagen, wenn Sie sich erinnern, wie wir mit
lokalen Host und 3000 gemacht haben und dann habe ich API v1, und dann setze ich Produkte zum Beispiel. Das ist also wie eine Get-Anfrage, wenn Sie es versuchen, Okay, wir haben alle Daten aus unserer Datenbank. Sie können das nicht so gut wie Postman ausprobieren, wenn Sie sich erinnern, wir haben viel mit dem Postboten gearbeitet und wir haben unsere API in Postman ausprobiert. Also hier werde ich eine neue Registerkarte für eine neue GET-Anfrage öffnen, und dann werde ich diesen Link setzen. Also der Link meiner Anwendungs-API, v1-Produkt. So wird es genau sein, wie ich es vom lokalen Host mache. So sehen Sie, dass alle diese Informationen gespeichert
sind und wir verwenden die Produktionsdatenbank. Wir verwenden nicht die Datenbank, die wir für lokale hatten. Also, um das zu beweisen, Lassen Sie uns eine Änderung in der Datenbank mit Kompass machen. Also werde ich zu meiner Bewerbung gehen, ich werde zur Produktionsdatenbank gehen. Ich werde darauf klicken und die Produkte öffnen. Und ich werde zu dem gehen, wo es anfängt, ich erinnere mich als mol, so etwas. Also hier die kleinen, sehen
Sie hier das kleine und das ist. Also lasst uns das ändern. Wir können sagen, ändern Sie diesen Satz. Wir gehen auf die, so klicken wir auf die kleine hier und wir können sagen, zum Beispiel, im Ausland. So können wir das größer machen und sagen Produktion. So können wir diese Wortproduktion hier hinzufügen. Also, nachdem wir aktualisieren, und dann gehen wir zum Postboten, und dann klicken wir auf Senden. Okay, wir haben hier Produktion. Dies ist also der Beweis, dass ich die breite Datenbank verwende, aber auf meinem lokalen Host, Lassen Sie uns versuchen, Anwendung auf lokalen auszuführen. So können wir sagen, npm starten, wie wir die Anwendung lokal ausgeführt wurden, okay, Der localhost 3000, alles ist in Ordnung. Jetzt gehen wir zu GET-Anfrage, aber auf dem lokalen Host. So haben wir hier zum Beispiel localhost 3000 API-Produkte. Und wenn wir es nennen, werden
wir sehen, dass wir die Datenbank aufrufen, die sich im lokalen Host befindet. Und wenn wir diese Datenbank überprüfen, werde ich hierher gehen. Und ich werde dieses Problem der Datenbank überprüfen. Gehen Sie zu Produkten. Ich werde viele Dummy-Produkte haben, die wir während der Entwicklung verwendet haben. Also in diesem Fall unterscheiden
wir jedes Mal, wenn ich auf meine Anwendung Thumb Sache bereitgestellt, können Sie dann eine Datenbank ihrer Produktion verwenden. Zum Beispiel werde ich hier etwas ändern. Ich werde ein Konsolenprotokoll hinzufügen. Welches Beispiel Konsolenprotokoll. Wie mit, wir verwenden. Zum Beispiel können Sie zusätzliche hinzufügen und dann können Sie den DB-Namen hier verwenden. Wenn ich also speichere, okay, auf meinem lokalen, werde ich sagen, dass wir E-Shop-Datenbank verwenden, aber wir müssen das bereitstellen. Also hier, unser lokaler, lokaler Host, wir haben e-shop-Datenbank, wie wir für die Entwicklung wissen. Aber wenn wir diese bereitstellen, würden wir bekommen, wir verwenden das Problem der Datenbank gebracht Tee oder Produkt. Auf diese Weise, wie wir Änderungen schieben können, müssen
wir wieder git add setzen und dann eine Nachricht hinzufügen. So zum Beispiel, Kommentare, können
wir sagen, ändern, und dann drücken wir die Eingabetaste, und dann verwenden wir wieder gemeinsam Push. Also git, push heroku master, es wird wieder bereitgestellt. Wie Sie hier sehen, wird es wieder bereitgestellt. Der gleiche Prozess wie wir im ersten Schritt gesehen haben. Jetzt ist die Bereitstellung abgeschlossen. Wie können wir sehen, dass, zum Beispiel, diese Nachricht, die wir verwenden, wie die Datenbank, Sie,
Ich meine, wie wir das Konsolenprotokoll oder die Fehler, die wir in der Entwicklung sehen sehen. Um zu sehen, dass Sie einfach gehen zwei mehr hier, und Sie können hier eine Ansicht Protokolle überprüfen. Wenn Sie also darauf klicken, werden
Sie alle Protokolle sehen, wie Sie lokal entwickeln. Also sagen wir hier, wir verwenden e-shop-Datenbank im Ausland. Also, diese sehr großartige Sache und genau wie wir die Anwendung auf lokaler und auch hatten, wird
es wie die Überwachung für unsere API machen. Wenn ich diese API aufrufe, gehe ich zu den Protokollen. Ich werde sehen, dass, okay, wir haben Informationen Get API v1-Produkte und einige andere Informationen über die Anfrage und Rückkehr und wie lange es dauerte. Aber wenn wir in die Datenbank gehen, müssen
wir zum Beispiel ein Bild überprüfen. Also werde ich hier gehen und ich werde in die Datenbank gehen und ich habe Produkte. Wir werden ein Problem mit den Bildern haben. Also, wenn Sie sich erinnern, haben
wir einige Bilder mit unserem E-Sharp hochgeladen. Also, wenn ich hier gehe, werde
ich sehen, dass im Produkt sie immer noch diesen localhost 3000 haben. Leider ist dies nicht möglich, es zu ersetzen. Sie müssen also alle diese Strings ersetzen, die mit dem lokalen Host verbunden sind. Sie müssen sie jährlich durch den Link ersetzen, der für Ihre Bewerbung zur Verfügung gestellt wird. Also in diesem Fall gehe
ich hier zu meiner Anwendung und kopiere dann diesen Teil, der von hier zu.com ist. Also werde ich all das kopieren. Und dann gehe ich wieder auf den Campus. Und dass es von HTTP zu localhost abgespielt wird. Auch der Port ist nicht notwendig und dann werde ich diesen Teil hier aktualisieren oder aktualisieren. Also klicken wir auf Update und dann wird es aktualisiert. Also, wenn ich jetzt zur Anwendung gehe und die URL des Bildes einfüge, kann ich das Bild erfolgreich sehen. Ansonsten sind alle Bilder leider immer noch auf localhost 3000. Bisher müssen
Sie basierend auf Ihrem Namen Ihrer Anwendung all dies für die Datenbank ersetzen. Natürlich, nachdem wir diese Datenbank verwenden, zum Beispiel in einem Front-End oder wenn wir Postman zum Beispiel verwenden, wenn ich ein Produkt mit dieser API-URL posten werde, wird
es das Bild basierend auf dieser URL hochladen, so dass es in der Datenbank so gespeichert wird. Aber weil wir diese Datenbank in der Entwicklung verwendet
haben, müssen Sie das manuell tun. Weil wir auch verwendet haben, wenn wir ein Produkt veröffentlichen. Wenn Sie sich erinnern, wenn wir gehen, um das Produkt und in der Post Produkt wir wie das Bild mit dem Host zu posten. Ich bekomme den Host aktuellen Host und lege dann den Rest hier, um den Bildpfad zu speichern. Der Host wird also von dem Host genommen, den Sie verwenden, und von dem aus die API aufgerufen wird. In diesem Fall müssen Sie sich also keine Gedanken über die Links , die wir für die hochgeladenen Dateien hochladen möchten. So haben wir jetzt eine voll funktionsfähige API auf dem Server. Die Anwendung wurde bereitgestellt. Natürlich, wenn Sie diese Heroku.com entfernen und Ihre eigene Domain erstellen möchten, ist
es nicht kostenlos. Dafür musst du bezahlen. Und natürlich können Sie es unter Ihrer eigenen Domain haben. Also in der Front-End-Anwendung oder jeder Front-End-Anwendung, wenn Sie die Front-End-Anwendung bereitstellen, nicht ihre Web-API. Sie können sagen, dass für meine Anwendung im Frontend in der Produktion diese API-URL für alle wie die Anwendung
verwendet wird. Und dann, wenn Ihre Anwendung bereitgestellt wird, stellt
sie eine Verbindung mit dieser API her und ruft die Daten von dort ab.