﻿1
00:00:01,220 --> 00:00:02,890
‫Instructeur : traitons maintenant l'erreur

2
00:00:02,890 --> 00:00:06,140
‫qui se produit lorsque nous essayons de créer des champs

3
00:00:06,140 --> 00:00:09,633
‫en double pour des champs qui sont en fait censés être uniques.

4
00:00:11,110 --> 00:00:12,210
‫Et donc, rappelez-vous

5
00:00:12,210 --> 00:00:13,940
‫que c'est le type d'erreur que

6
00:00:13,940 --> 00:00:14,900
‫nous obtenons.

7
00:00:14,900 --> 00:00:16,673
‫Nous avons donc essayé de

8
00:00:16,673 --> 00:00:19,000
‫créer une nouvelle tournée avec un nom qui

9
00:00:19,000 --> 00:00:21,550
‫existe déjà et les champs de nom sont censés

10
00:00:21,550 --> 00:00:23,670
‫être uniques et nous obtenons donc cette erreur.

11
00:00:23,670 --> 00:00:25,250
‫Maintenant, cette erreur ici n'a

12
00:00:25,250 --> 00:00:27,210
‫pas de propriété de nom, d'accord ?

13
00:00:27,210 --> 00:00:29,071
‫Et c'est parce que, comme je l'ai

14
00:00:29,071 --> 00:00:30,910
‫mentionné précédemment, ce n'est en fait pas

15
00:00:30,910 --> 00:00:32,720
‫une erreur causée par une mangouste.

16
00:00:32,720 --> 00:00:35,000
‫Mais à la place, vraiment,

17
00:00:35,000 --> 00:00:37,830
‫par le pilote MongoDB sous-jacent, d'accord ?

18
00:00:37,830 --> 00:00:39,140
‫Et donc,

19
00:00:39,140 --> 00:00:40,734
‫ce que nous allons

20
00:00:40,734 --> 00:00:45,580
‫faire pour identifier cette erreur, c'est utiliser ce code 11 000 ici.

21
00:00:45,580 --> 00:00:46,413
‫D'accord?

22
00:00:47,970 --> 00:00:51,263
‫Nous avons donc un gestionnaire pour CastError.

23
00:00:51,263 --> 00:00:54,190
‫Créons maintenant un pour le cas où nous avons

24
00:00:54,190 --> 00:00:55,823
‫cette erreur. code,. code égal à 11.000.

25
00:00:56,837 --> 00:01:00,673
‫Donc, dans ce cas, toutes les erreurs devraient être égales aux

26
00:01:01,640 --> 00:01:04,138
‫retours d'erreur de handleDuplicateFields et encore une

27
00:01:04,138 --> 00:01:08,833
‫fois, j'ajoute DB ici juste pour que nous sachions que cela a à voir

28
00:01:10,610 --> 00:01:12,610
‫avec notre base de données.

29
00:01:12,610 --> 00:01:15,983
‫D'accord?

30
00:01:16,940 --> 00:01:18,160
‫Et, alors créons maintenant cette fonction.

31
00:01:18,160 --> 00:01:22,383
‫Et maintenant, le message que nous allons envoyer

32
00:01:29,470 --> 00:01:32,900
‫est celui-ci alors créons-le ici.

33
00:01:34,900 --> 00:01:37,470
‫Et donc je veux qu'il dise, Dupliquer la valeur

34
00:01:37,470 --> 00:01:38,993
‫du champ, puis entendre le

35
00:01:43,220 --> 00:01:46,090
‫nom de cette valeur, alors mettons cela à x pour l'instant.

36
00:01:46,090 --> 00:01:49,503
‫Nous le générerons un peu plus tard.

37
00:01:50,760 --> 00:01:53,160
‫Veuillez donc utiliser une autre valeur.

38
00:01:53,160 --> 00:01:57,113
‫D'accord?

39
00:01:58,170 --> 00:01:59,030
‫Et donc dans le cas

40
00:01:59,030 --> 00:02:01,120
‫que nous venons de voir, ce x ici devrait s'appeler le Forest Hiker.

41
00:02:01,120 --> 00:02:04,093
‫Donc, fondamentalement, ce que nous essayons de sortir

42
00:02:05,730 --> 00:02:07,410
‫de cette chaîne de

43
00:02:07,410 --> 00:02:11,090
‫message d'erreur ici est ceci : « The Forest Hiker. " C'est donc la valeur en double que nous

44
00:02:11,090 --> 00:02:13,577
‫voulons envoyer

45
00:02:14,569 --> 00:02:16,280
‫au client pour qu'il

46
00:02:16,280 --> 00:02:18,040
‫puisse maintenant la corriger

47
00:02:18,040 --> 00:02:20,100
‫et créer un autre nom.

48
00:02:20,100 --> 00:02:22,040
‫Alors, comment pouvons-nous réellement extraire ce morceau

49
00:02:22,040 --> 00:02:23,595
‫de chaîne ici ?

50
00:02:23,595 --> 00:02:26,120
‫Eh bien, nous allons utiliser une expression régulière

51
00:02:26,120 --> 00:02:28,520
‫pour, en gros, comme je viens de le

52
00:02:28,520 --> 00:02:30,640
‫dire, trouver le texte entre guillemets.

53
00:02:30,640 --> 00:02:33,170
‫Parce qu'ici dans cette chaîne, tout ce que nous

54
00:02:33,170 --> 00:02:35,520
‫avons vraiment pour identifier ce texte ici, donc

55
00:02:35,520 --> 00:02:37,670
‫pour le trouver, ce sont ces citations.

56
00:02:37,670 --> 00:02:40,460
‫D'accord?

57
00:02:40,460 --> 00:02:41,293
‫Et maintenant, comme vous

58
00:02:41,293 --> 00:02:43,010
‫le savez déjà, les expressions régulières peuvent être vraiment difficiles.

59
00:02:43,010 --> 00:02:45,670
‫Et donc je les ai généralement sur Google et laissez-moi

60
00:02:45,670 --> 00:02:47,840
‫vous montrer comment je le fais réellement.

61
00:02:47,840 --> 00:02:50,273
‫Dans ce cas, je rechercherais simplement le texte

62
00:02:53,280 --> 00:02:55,250
‫de correspondance d'expression régulière entre guillemets.

63
00:02:55,250 --> 00:03:00,250
‫Et puis généralement c'est juste le premier résultat.

64
00:03:05,620 --> 00:03:08,660
‫Et puis ici, nous avons le résultat et nous

65
00:03:08,660 --> 00:03:11,250
‫pouvons donc utiliser simplement cette expression régulière.

66
00:03:11,250 --> 00:03:14,698
‫Maintenant, je vois que nous avons ici ceci ici.

67
00:03:14,698 --> 00:03:17,150
‫Cela fonctionne aussi et c'est plus facile à lire.

68
00:03:17,150 --> 00:03:19,270
‫Et il a un tas de votes positifs et

69
00:03:19,270 --> 00:03:21,100
‫nous pouvons donc simplement utiliser celui-ci.

70
00:03:21,100 --> 00:03:23,280
‫Donc ça devrait marcher aussi.

71
00:03:23,280 --> 00:03:25,290
‫Alors copions-le et revenons

72
00:03:25,290 --> 00:03:29,870
‫à notre code, et disons que notre valeur, donc la

73
00:03:29,870 --> 00:03:32,493
‫valeur const est égale à l'erreur. ermsg, alors n'oubliez pas que c'était le

74
00:03:34,440 --> 00:03:37,663
‫nom de la propriété.

75
00:03:40,990 --> 00:03:45,990
‫Alors, euh. Encore une fois, c'est parce qu'il s'agit d'une erreur créée par Mongo et

76
00:03:46,000 --> 00:03:48,820
‫que ce sont

77
00:03:48,820 --> 00:03:51,010
‫donc des noms légèrement différents.

78
00:03:51,010 --> 00:03:53,383
‫D'accord?

79
00:03:54,410 --> 00:03:55,243
‫Nous avons donc

80
00:03:55,243 --> 00:03:57,890
‫cette chaîne et maintenant nous voulons faire correspondre notre expression régulière.

81
00:03:57,890 --> 00:03:59,973
‫Donc, match, puis en JavaScript, une

82
00:04:02,140 --> 00:04:04,260
‫expression régulière est toujours entre deux barres obliques.

83
00:04:04,260 --> 00:04:07,623
‫Ensuite, collez ici ce que nous venons de

84
00:04:08,530 --> 00:04:12,220
‫recevoir de Stack Overflow et jetons un coup d'œil.

85
00:04:14,450 --> 00:04:16,000
‫Donc, nous sommes déjà en production.

86
00:04:22,260 --> 00:04:24,600
‫Pour le moment, nous ne renverrons aucune réponse.

87
00:04:24,600 --> 00:04:27,340
‫Tout ce que je veux faire maintenant est de jeter un oeil à la valeur.

88
00:04:27,340 --> 00:04:30,203
‫Donc, si j'envoie ceci maintenant, nous obtenons cette réponse étrange ici.

89
00:04:31,870 --> 00:04:36,870
‫Et encore une fois, c'est parce que nous n'envoyons aucune erreur.

90
00:04:37,870 --> 00:04:40,910
‫Mais pour l'instant, je n'étais vraiment intéressé que par la valeur.

91
00:04:40,910 --> 00:04:44,213
‫Et donc ceci, ce que nous voyons ici dans le journal est

92
00:04:45,540 --> 00:04:46,660
‫maintenant cette valeur.

93
00:04:46,660 --> 00:04:48,980
‫Et en fait, c'est un tableau.

94
00:04:48,980 --> 00:04:51,163
‫Mais ce qui nous intéresse, c'est en fait cette chaîne ici.

95
00:04:52,030 --> 00:04:55,830
‫Cela correspondait donc à tout le texte qui se trouvait

96
00:04:55,830 --> 00:04:58,550
‫entre les chaînes et nous pouvons donc

97
00:04:58,550 --> 00:05:00,670
‫dire que cela a fonctionné.

98
00:05:00,670 --> 00:05:01,970
‫Notre expression régulière a donc fonctionné.

99
00:05:03,680 --> 00:05:06,720
‫Maintenant, tout ce que nous avons à dire, c'est que nous voulons

100
00:05:06,720 --> 00:05:08,370
‫le premier élément de ce tableau.

101
00:05:08,370 --> 00:05:10,970
‫Donc, élément zéro.

102
00:05:10,970 --> 00:05:12,960
‫Et maintenant, allons de l'avant

103
00:05:12,960 --> 00:05:16,280
‫et retournons une nouvelle AppError, donc une nouvelle

104
00:05:16,280 --> 00:05:20,590
‫AppError, collez le message et à nouveau le code d'état 400

105
00:05:20,590 --> 00:05:22,560
‫pour une mauvaise demande.

106
00:05:22,560 --> 00:05:25,993
‫Et alors essayons maintenant à nouveau.

107
00:05:27,999 --> 00:05:29,570
‫Encore une fois, nous exécutons

108
00:05:29,570 --> 00:05:31,820
‫toujours une production et ce code devrait maintenant s'exécuter.

109
00:05:31,820 --> 00:05:34,550
‫Et bien sûr, nous avons essayé de remplacer notre x.

110
00:05:34,550 --> 00:05:37,423
‫Bien sûr, nous voulons maintenant notre valeur ici.

111
00:05:40,400 --> 00:05:42,613
‫Et donc, maintenant nous obtenons une

112
00:05:46,750 --> 00:05:51,110
‫valeur de champ en double, "The Forest Hiker. " Parfait.

113
00:05:51,110 --> 00:05:51,970
‫Et maintenant,

114
00:05:51,970 --> 00:05:54,140
‫dans la prochaine vidéo, nous traiterons ensuite

115
00:05:54,140 --> 00:05:57,330
‫la dernière des trois erreurs qui sont les erreurs de validation.

