‫Instructeur : traitons maintenant l'erreur
‫qui se produit lorsque nous essayons de créer des champs
‫en double pour des champs qui sont en fait censés être uniques.
‫Et donc, rappelez-vous
‫que c'est le type d'erreur que
‫nous obtenons.
‫Nous avons donc essayé de
‫créer une nouvelle tournée avec un nom qui
‫existe déjà et les champs de nom sont censés
‫être uniques et nous obtenons donc cette erreur.
‫Maintenant, cette erreur ici n'a
‫pas de propriété de nom, d'accord ?
‫Et c'est parce que, comme je l'ai
‫mentionné précédemment, ce n'est en fait pas
‫une erreur causée par une mangouste.
‫Mais à la place, vraiment,
‫par le pilote MongoDB sous-jacent, d'accord ?
‫Et donc,
‫ce que nous allons
‫faire pour identifier cette erreur, c'est utiliser ce code 11 000 ici.
‫D'accord?
‫Nous avons donc un gestionnaire pour CastError.
‫Créons maintenant un pour le cas où nous avons
‫cette erreur. code,. code égal à 11.000.
‫Donc, dans ce cas, toutes les erreurs devraient être égales aux
‫retours d'erreur de handleDuplicateFields et encore une
‫fois, j'ajoute DB ici juste pour que nous sachions que cela a à voir
‫avec notre base de données.
‫D'accord?
‫Et, alors créons maintenant cette fonction.
‫Et maintenant, le message que nous allons envoyer
‫est celui-ci alors créons-le ici.
‫Et donc je veux qu'il dise, Dupliquer la valeur
‫du champ, puis entendre le
‫nom de cette valeur, alors mettons cela à x pour l'instant.
‫Nous le générerons un peu plus tard.
‫Veuillez donc utiliser une autre valeur.
‫D'accord?
‫Et donc dans le cas
‫que nous venons de voir, ce x ici devrait s'appeler le Forest Hiker.
‫Donc, fondamentalement, ce que nous essayons de sortir
‫de cette chaîne de
‫message d'erreur ici est ceci : « The Forest Hiker. " C'est donc la valeur en double que nous
‫voulons envoyer
‫au client pour qu'il
‫puisse maintenant la corriger
‫et créer un autre nom.
‫Alors, comment pouvons-nous réellement extraire ce morceau
‫de chaîne ici ?
‫Eh bien, nous allons utiliser une expression régulière
‫pour, en gros, comme je viens de le
‫dire, trouver le texte entre guillemets.
‫Parce qu'ici dans cette chaîne, tout ce que nous
‫avons vraiment pour identifier ce texte ici, donc
‫pour le trouver, ce sont ces citations.
‫D'accord?
‫Et maintenant, comme vous
‫le savez déjà, les expressions régulières peuvent être vraiment difficiles.
‫Et donc je les ai généralement sur Google et laissez-moi
‫vous montrer comment je le fais réellement.
‫Dans ce cas, je rechercherais simplement le texte
‫de correspondance d'expression régulière entre guillemets.
‫Et puis généralement c'est juste le premier résultat.
‫Et puis ici, nous avons le résultat et nous
‫pouvons donc utiliser simplement cette expression régulière.
‫Maintenant, je vois que nous avons ici ceci ici.
‫Cela fonctionne aussi et c'est plus facile à lire.
‫Et il a un tas de votes positifs et
‫nous pouvons donc simplement utiliser celui-ci.
‫Donc ça devrait marcher aussi.
‫Alors copions-le et revenons
‫à notre code, et disons que notre valeur, donc la
‫valeur const est égale à l'erreur. ermsg, alors n'oubliez pas que c'était le
‫nom de la propriété.
‫Alors, euh. Encore une fois, c'est parce qu'il s'agit d'une erreur créée par Mongo et
‫que ce sont
‫donc des noms légèrement différents.
‫D'accord?
‫Nous avons donc
‫cette chaîne et maintenant nous voulons faire correspondre notre expression régulière.
‫Donc, match, puis en JavaScript, une
‫expression régulière est toujours entre deux barres obliques.
‫Ensuite, collez ici ce que nous venons de
‫recevoir de Stack Overflow et jetons un coup d'œil.
‫Donc, nous sommes déjà en production.
‫Pour le moment, nous ne renverrons aucune réponse.
‫Tout ce que je veux faire maintenant est de jeter un oeil à la valeur.
‫Donc, si j'envoie ceci maintenant, nous obtenons cette réponse étrange ici.
‫Et encore une fois, c'est parce que nous n'envoyons aucune erreur.
‫Mais pour l'instant, je n'étais vraiment intéressé que par la valeur.
‫Et donc ceci, ce que nous voyons ici dans le journal est
‫maintenant cette valeur.
‫Et en fait, c'est un tableau.
‫Mais ce qui nous intéresse, c'est en fait cette chaîne ici.
‫Cela correspondait donc à tout le texte qui se trouvait
‫entre les chaînes et nous pouvons donc
‫dire que cela a fonctionné.
‫Notre expression régulière a donc fonctionné.
‫Maintenant, tout ce que nous avons à dire, c'est que nous voulons
‫le premier élément de ce tableau.
‫Donc, élément zéro.
‫Et maintenant, allons de l'avant
‫et retournons une nouvelle AppError, donc une nouvelle
‫AppError, collez le message et à nouveau le code d'état 400
‫pour une mauvaise demande.
‫Et alors essayons maintenant à nouveau.
‫Encore une fois, nous exécutons
‫toujours une production et ce code devrait maintenant s'exécuter.
‫Et bien sûr, nous avons essayé de remplacer notre x.
‫Bien sûr, nous voulons maintenant notre valeur ici.
‫Et donc, maintenant nous obtenons une
‫valeur de champ en double, "The Forest Hiker. " Parfait.
‫Et maintenant,
‫dans la prochaine vidéo, nous traiterons ensuite
‫la dernière des trois erreurs qui sont les erreurs de validation.