‫Kursleiter: Behandeln wir nun
‫den Fehler, der auftritt, wenn wir versuchen, doppelte
‫Felder für Felder zu erstellen, die eigentlich eindeutig sein sollen.
‫Denken Sie also daran,
‫dass dies die Art von Fehler ist,
‫die wir erhalten.
‫Wir haben also versucht,
‫eine neue Tour mit einem bereits vorhandenen
‫Namen zu erstellen und die Namensfelder sollen
‫eindeutig sein und erhalten diesen Fehler.
‫Dieser Fehler hier
‫hat keine Namenseigenschaft, okay?
‫Und das liegt daran, dass es, wie
‫bereits erwähnt, eigentlich kein Fehler ist, der
‫von einem Mungo verursacht wird.
‫Aber stattdessen wirklich durch
‫den zugrunde liegenden MongoDB-Treiber, okay?
‫Um
‫diesen Fehler
‫zu identifizieren, verwenden wir diesen 11.000-Code hier.
‫Gut?
‫Wir haben also einen Handler für den CastError.
‫Lassen Sie uns nun eine für den Fall erstellen, dass wir
‫diesen Fehler haben. Code,. Code gleich 11.000.
‫In diesem Fall sollten alle Fehler gleich den Fehlerrückgaben
‫von handleDuplicateFields sein und wieder füge
‫ich hier DB hinzu, nur damit wir wissen, dass dies mit unserer
‫Datenbank zu tun hat.
‫Gut?
‫Und, also lassen Sie uns diese Funktion nun tatsächlich erstellen.
‫Und jetzt ist die Nachricht, die wir senden werden,
‫diese, also lasst uns sie hier erstellen.
‫Und deshalb möchte ich, dass es sagt, Feldwert duplizieren,
‫und dann den Namen
‫dieses Werts hören, also setzen wir das jetzt auf x.
‫Das generieren wir etwas später.
‫Bitte verwenden Sie daher einen anderen Wert.
‫Gut?
‫In dem Fall, den
‫wir gerade gesehen haben, sollte dieses x hier Waldwanderer genannt werden.
‫Im Grunde versuchen wir also,
‫aus dieser
‫Fehlermeldungsfolge hier Folgendes herauszuholen: "The Forest Hiker. "Das ist also der doppelte Wert, den wir an
‫den Client
‫senden möchten, damit er
‫ihn jetzt korrigieren und
‫einen anderen Namen erstellen kann.
‫Also, wie können wir dieses Stück der
‫Schnur hier eigentlich extrahieren?
‫Nun, wir werden einen regulären Ausdruck verwenden, um
‫im Grunde, wie ich gerade sagte, den Text
‫zu finden, der zwischen Anführungszeichen steht.
‫Denn hier in dieser Zeichenfolge brauchen wir nur
‫diese Anführungszeichen, um diesen Text hier wirklich
‫zu identifizieren, um ihn zu finden.
‫Gut?
‫Und wie Sie
‫bereits wissen, können reguläre Ausdrücke wirklich schwierig sein.
‫Und so googele ich sie normalerweise einfach und lass mich
‫dir zeigen, wie ich das tatsächlich mache.
‫In diesem Fall würde ich einfach nach Übereinstimmungstext
‫für reguläre Ausdrücke zwischen Anführungszeichen suchen.
‫Und dann stimmt meistens das erste Ergebnis.
‫Und hier unten haben wir das Ergebnis und
‫können einfach diesen regulären Ausdruck verwenden.
‫Jetzt sehe ich, dass wir das hier unten haben.
‫Dies funktioniert auch und ist einfacher zu lesen.
‫Und es hat eine Menge Stimmen und
‫so können wir einfach dieses verwenden.
‫Das sollte also auch funktionieren.
‫Also kopieren wir es
‫und gehen zurück zu unserem Code und sagen, dass unser Wert,
‫also const value, gleich dem Fehler ist. ermsg, also denken Sie daran, dass dies der
‫Name der Eigenschaft war.
‫Also, errmsg. Das liegt also wieder daran, dass dies ein Fehler ist, der von Mongo erstellt
‫wurde, und daher
‫handelt es sich um leicht unterschiedliche Namen.
‫Okay?
‫Wir haben also
‫diesen String und hier wollen wir unseren regulären Ausdruck abgleichen.
‫Also, match, und dann steht in
‫JavaScript ein regulärer Ausdruck immer zwischen zwei Schrägstrichen.
‫Dann füge es hier ein, was wir gerade von
‫Stack Overflow bekommen haben, und lass uns einen Blick darauf werfen.
‫Wir laufen also bereits in der Produktion.
‫Im Moment werden wir keine Antwort zurücksenden.
‫Jetzt möchte ich mir nur noch den Wert anschauen.
‫Also, wenn ich das jetzt schicke, bekommen wir hier diese seltsame Antwort.
‫Das liegt wiederum daran, dass wir keine Fehler senden.
‫Aber im Moment interessierte mich wirklich nur der Wert.
‫Und das, was wir jetzt hier im Protokoll sehen,
‫ist dieser Wert.
‫Und eigentlich ist es ein Array.
‫Aber was uns interessiert, ist eigentlich diese Saite hier.
‫Es stimmte also tatsächlich mit dem gesamten Text überein, der sich
‫zwischen den Zeichenfolgen befand, und wir können also
‫sagen, dass es funktioniert hat.
‫Unser regulärer Ausdruck hat also funktioniert.
‫Jetzt müssen wir nur noch sagen, dass wir das erste
‫Element dieses Arrays haben wollen.
‫Also Element Null.
‫Und jetzt gehen wir tatsächlich
‫weiter und geben einen neuen AppError zurück, also einen
‫neuen AppError, fügen Sie die Nachricht ein und wieder den 400-Statuscode
‫für eine schlechte Anfrage.
‫Und so versuchen wir es jetzt noch einmal.
‫Auch hier führen wir immer noch
‫eine Produktion durch und der Code sollte jetzt ausgeführt werden.
‫Und natürlich haben wir versucht, unser x zu ersetzen.
‫Natürlich wollen wir jetzt unseren Wert hier.
‫Und so erhalten wir jetzt
‫den doppelten Feldwert "The Forest Hiker. " Perfekt.
‫Und jetzt,
‫als nächstes, im nächsten Video werden wir
‫dann den letzten der drei Fehler behandeln, die die Validierungsfehler sind.