﻿1
00:00:00,890 --> 00:00:02,400
‫Conférencier : Bonjour.

2
00:00:02,400 --> 00:00:06,663
‫Rendons maintenant quelques pages d'erreur intéressantes à nos utilisateurs.

3
00:00:08,210 --> 00:00:11,723
‫Et donc pour commencer, créons d'abord une erreur.

4
00:00:13,100 --> 00:00:15,033
‫Ouvrons donc cette visite ici.

5
00:00:16,350 --> 00:00:18,293
‫Non, je ne veux pas traduire.

6
00:00:19,440 --> 00:00:23,640
‫Et maintenant, ajoutons simplement quelque chose à ce journal ici, et alors,

7
00:00:23,640 --> 00:00:26,563
‫bien sûr, cela ne sera pas trouvé.

8
00:00:27,800 --> 00:00:31,140
‫Exact, et voici à quoi ressemble une erreur à

9
00:00:31,140 --> 00:00:32,330
‫ce stade.

10
00:00:32,330 --> 00:00:34,510
‫Donc, tout simplement, tout ce

11
00:00:34,510 --> 00:00:37,440
‫JSON ici, exactement comme cela ressemblerait à Postman.

12
00:00:37,440 --> 00:00:40,110
‫Nous avons donc déjà vu ce genre d'erreur ici.

13
00:00:40,110 --> 00:00:42,740
‫Et donc, réparons maintenant cela.

14
00:00:42,740 --> 00:00:46,230
‫Mais nous devons d'abord corriger cette erreur particulière.

15
00:00:46,230 --> 00:00:48,150
‫Donc, pour le moment,

16
00:00:48,150 --> 00:00:53,150
‫nous ne pouvons pas lire le nom de propriété de null dans getTour.

17
00:00:53,530 --> 00:00:54,600
‫D'accord.

18
00:00:54,600 --> 00:00:59,530
‫Et c'est donc ici dans notre contrôleur de vues, getTour.

19
00:00:59,530 --> 00:01:02,120
‫Et donc ici, nous n'avons aucune gestion d'erreur au

20
00:01:02,120 --> 00:01:05,260
‫cas où il n'y aurait pas de tournée, n'est-ce pas ?

21
00:01:05,260 --> 00:01:08,060
‫Nous l'avons donc dans tous nos autres gestionnaires de routes,

22
00:01:08,060 --> 00:01:10,470
‫mais dans celui-ci, nous ne l'avons pas encore.

23
00:01:10,470 --> 00:01:11,513
‫Ajoutons donc cela.

24
00:01:12,570 --> 00:01:17,570
‫Donc, s'il n'y a pas de visite, revenez et

25
00:01:18,910 --> 00:01:23,910
‫passez au middleware suivant avec une nouvelle erreur d'application.

26
00:01:25,020 --> 00:01:28,090
‫Et ce n'est probablement pas encore là.

27
00:01:28,090 --> 00:01:29,483
‫Et non en effet, ce n'est pas le cas.

28
00:01:31,290 --> 00:01:32,123
‫Donc const.

29
00:01:34,904 --> 00:01:36,363
‫AppError est égal.

30
00:01:44,880 --> 00:01:46,220
‫Bien.

31
00:01:46,220 --> 00:01:48,280
‫Erreur ici bien sûr.

32
00:01:48,280 --> 00:01:49,480
‫Et puis disons qu'il

33
00:01:53,720 --> 00:01:55,633
‫n'y a pas de tournée avec ce nom.

34
00:01:57,420 --> 00:02:01,090
‫Et puis c'est un 404 pour introuvable.

35
00:02:01,090 --> 00:02:02,400
‫D'accord?

36
00:02:02,400 --> 00:02:04,300
‫Essayons donc à nouveau.

37
00:02:04,300 --> 00:02:07,690
‫Et maintenant, nous devrions obtenir une erreur beaucoup plus agréable.

38
00:02:07,690 --> 00:02:09,490
‫Et en effet, nous en obtenons un.

39
00:02:09,490 --> 00:02:11,135
‫Donc 404.

40
00:02:11,135 --> 00:02:14,800
‫Et gardez à l'esprit que celui-ci est maintenant une erreur opérationnelle.

41
00:02:14,800 --> 00:02:18,570
‫Donc une erreur que nous savons que nous avons créée nous-mêmes fondamentalement.

42
00:02:18,570 --> 00:02:21,910
‫Et comme avant, cela va être important pour notre

43
00:02:21,910 --> 00:02:23,870
‫stratégie de gestion des erreurs.

44
00:02:23,870 --> 00:02:27,240
‫Alors, parlons-en en fait.

45
00:02:27,240 --> 00:02:30,010
‫Et voilà, nous avons terminé.

46
00:02:30,010 --> 00:02:32,283
‫Et maintenant, dans notre contrôleur

47
00:02:33,500 --> 00:02:37,130
‫d'erreurs, nous avons, rappelons-le, deux fonctions qui renvoient

48
00:02:37,130 --> 00:02:39,070
‫les erreurs au client.

49
00:02:39,070 --> 00:02:41,280
‫Nous avons donc celui-ci ici pour le

50
00:02:41,280 --> 00:02:43,370
‫développement et celui-ci pour la production.

51
00:02:43,370 --> 00:02:45,650
‫Puis en production, on

52
00:02:45,650 --> 00:02:49,730
‫distingue les erreurs opérationnelles des autres erreurs inconnues.

53
00:02:49,730 --> 00:02:50,563
‫À droite?

54
00:02:50,563 --> 00:02:53,190
‫Et c'est en fait ce dont nous venons de parler avant.

55
00:02:53,190 --> 00:02:54,690
‫Donc, pour les erreurs que

56
00:02:54,690 --> 00:02:57,470
‫nous connaissons, nous renvoyons le vrai message d'erreur parce

57
00:02:57,470 --> 00:02:59,780
‫que nous pouvons être sûrs qu'il ne

58
00:02:59,780 --> 00:03:01,130
‫s'agira pas d'une

59
00:03:01,130 --> 00:03:03,520
‫erreur étrange provenant d'express ou d'une note ou

60
00:03:03,520 --> 00:03:04,910
‫quelque chose comme ça.

61
00:03:04,910 --> 00:03:08,180
‫Tandis que, d'un autre côté, lorsqu'il s'agit d'une erreur inconnue, eh

62
00:03:08,180 --> 00:03:11,410
‫bien, nous ne voulons pas divulguer les détails de l'erreur.

63
00:03:11,410 --> 00:03:13,880
‫Et maintenant, dans ce cas, avec le site

64
00:03:13,880 --> 00:03:16,433
‫Web rendu, nous utiliserons en fait la même stratégie.

65
00:03:17,460 --> 00:03:18,950
‫Maintenant, ce que je

66
00:03:18,950 --> 00:03:21,960
‫vais faire, c'est simplement ajouter le rendu d'une page

67
00:03:21,960 --> 00:03:23,900
‫d'erreur à chacune de ces fonctions.

68
00:03:23,900 --> 00:03:26,450
‫Et en gros, ce que je

69
00:03:26,450 --> 00:03:29,750
‫vais faire, c'est tester si l'URL commence par l'API slash.

70
00:03:29,750 --> 00:03:33,930
‫Et donc dans ce cas, nous envoyons ce genre d'erreur, n'est-ce pas.

71
00:03:33,930 --> 00:03:38,500
‫Mais si l'URL ne commence pas par l'API, eh bien dans ce cas, cela

72
00:03:38,500 --> 00:03:41,340
‫signifie que nous voulons afficher une page d'erreur en

73
00:03:41,340 --> 00:03:44,030
‫tant que site Web rendu, d'accord ?

74
00:03:44,030 --> 00:03:46,823
‫Donc, tout comme nous l'avons fait dans cette section.

75
00:03:47,920 --> 00:03:50,520
‫Quoi qu'il en soit, implémentons maintenant cela.

76
00:03:50,520 --> 00:03:55,520
‫Et ainsi, nous pouvons utiliser l'URL d'origine du point de demande.

77
00:03:55,570 --> 00:03:58,133
‫Et nous l'avons probablement déjà utilisé.

78
00:04:00,000 --> 00:04:00,840
‫Bien?

79
00:04:00,840 --> 00:04:04,690
‫L'URL d'origine est donc essentiellement l'URL entière mais pas

80
00:04:04,690 --> 00:04:06,180
‫celle de l'hôte.

81
00:04:06,180 --> 00:04:08,990
‫Il ressemble donc exactement à l'itinéraire.

82
00:04:08,990 --> 00:04:12,050
‫Et encore une fois, lorsque nous atteignons

83
00:04:12,050 --> 00:04:15,640
‫notre URL, eh bien, cette route commence par l'API slash.

84
00:04:15,640 --> 00:04:17,440
‫Et maintenant, nous pouvons tester cela.

85
00:04:17,440 --> 00:04:20,710
‫Nous pouvons donc utiliser une fonction JavaScript appelée startWith.

86
00:04:24,310 --> 00:04:26,873
‫Donc une fonction qui est disponible pour les chaînes.

87
00:04:27,860 --> 00:04:30,973
‫Et puis testez s'il commence par l'API slash.

88
00:04:32,530 --> 00:04:33,363
‫À droite?

89
00:04:33,363 --> 00:04:36,853
‫Et si c'est le cas, alors c'est ce que nous voulons faire.

90
00:04:38,630 --> 00:04:41,163
‫Donc, envoyez simplement l'erreur en tant que JSON.

91
00:04:42,570 --> 00:04:46,943
‫Mais sinon, eh bien, nous voulons en fait générer une erreur.

92
00:04:49,320 --> 00:04:52,103
‫Donc c'est toujours res. statut.

93
00:04:54,530 --> 00:04:56,177
‫Et à statusCode aussi.

94
00:04:56,177 --> 00:04:59,483
‫Mais ici, il s'agit en fait de rendu.

95
00:05:00,430 --> 00:05:02,480
‫Ensuite, nous obtenons le nom du

96
00:05:02,480 --> 00:05:05,290
‫modèle, et nous allons créer ce modèle dans une

97
00:05:05,290 --> 00:05:07,263
‫seconde, mais il s'appellera error.

98
00:05:08,230 --> 00:05:10,810
‫Et puis les données que nous voulons y envoyer

99
00:05:10,810 --> 00:05:12,970
‫ne sont pour l'instant que le titre.

100
00:05:12,970 --> 00:05:14,430
‫Et j'ajouterai d'autres éléments

101
00:05:14,430 --> 00:05:16,223
‫une fois le modèle terminé.

102
00:05:18,350 --> 00:05:22,900
‫Donc quelque chose s'est mal passé va être le titre

103
00:05:22,900 --> 00:05:25,323
‫de cette page d'erreur.

104
00:05:26,490 --> 00:05:27,750
‫Bien?

105
00:05:27,750 --> 00:05:29,570
‫Oh, en fait, nous n'avons pas

106
00:05:29,570 --> 00:05:31,630
‫accès à la variable de requête ici.

107
00:05:31,630 --> 00:05:33,480
‫Et sa fonction.

108
00:05:33,480 --> 00:05:35,173
‫Et donc rajoutons ça.

109
00:05:36,790 --> 00:05:38,160
‫Demandez ici.

110
00:05:38,160 --> 00:05:40,270
‫Et nous allons aussi en avoir besoin ici.

111
00:05:40,270 --> 00:05:41,103
‫Celui-là.

112
00:05:42,790 --> 00:05:45,010
‫Et ajoutons donc cela ici aussi.

113
00:05:45,010 --> 00:05:47,193
‫Alors juste ici.

114
00:05:53,723 --> 00:05:54,853
‫D'accord.

115
00:05:55,690 --> 00:05:59,180
‫Nous devons donc maintenant créer cette page, ou

116
00:05:59,180 --> 00:06:01,400
‫ce modèle, appelé error.

117
00:06:01,400 --> 00:06:04,683
‫Et encore une fois, j'ai déjà un modèle simple pour ça.

118
00:06:06,110 --> 00:06:11,030
‫C'est donc dans dev-data, templates et errorTemplate.

119
00:06:12,830 --> 00:06:14,110
‫D'accord?

120
00:06:14,110 --> 00:06:15,513
‫Alors copions ceci.

121
00:06:17,370 --> 00:06:19,493
‫Et puis créez une vue pour cela.

122
00:06:21,190 --> 00:06:22,253
‫Erreur. carlin.

123
00:06:24,010 --> 00:06:24,843
‫D'accord.

124
00:06:24,843 --> 00:06:28,080
‫Et donc ici, nous avons un simple h2 qui dit, euh oh,

125
00:06:28,080 --> 00:06:29,800
‫quelque chose s'est mal passé.

126
00:06:29,800 --> 00:06:32,540
‫Puis (rires) quelques emojis amusants là-bas.

127
00:06:32,540 --> 00:06:34,100
‫Ils ne sont pas vraiment amusants.

128
00:06:34,100 --> 00:06:38,400
‫Et puis ici on veut pouvoir aussi faire passer un message.

129
00:06:38,400 --> 00:06:39,750
‫Bien?

130
00:06:39,750 --> 00:06:44,750
‫Ajoutons donc ceci égal à msg, juste un raccourci pour message.

131
00:06:46,320 --> 00:06:47,530
‫Bien?

132
00:06:47,530 --> 00:06:48,963
‫Et c'est en fait ça.

133
00:06:49,940 --> 00:06:54,940
‫Alors terminons cela et passons ce message.

134
00:06:55,810 --> 00:06:58,640
‫Donc, msg est alors défini.

135
00:06:58,640 --> 00:07:02,403
‫Et définissons-le vraiment sur le message de point d'erreur.

136
00:07:03,700 --> 00:07:04,533
‫D'accord?

137
00:07:04,533 --> 00:07:07,260
‫Et nous faisons ici parce que nous sommes en développement.

138
00:07:07,260 --> 00:07:08,423
‫Alors garde cela en tête.

139
00:07:09,760 --> 00:07:11,460
‫Ajoutons également quelques commentaires ici.

140
00:07:13,402 --> 00:07:14,235
‫API.

141
00:07:18,360 --> 00:07:19,593
‫Mettons ça ici.

142
00:07:24,740 --> 00:07:26,570
‫Le site Web rendu.

143
00:07:26,570 --> 00:07:29,890
‫Nous le faisons donc comme ça, avec un message d'erreur, encore une

144
00:07:29,890 --> 00:07:31,530
‫fois parce qu'en développement, cela

145
00:07:31,530 --> 00:07:34,970
‫n'a pas vraiment d'importance si nous divulguons tous les détails de l'erreur

146
00:07:34,970 --> 00:07:36,660
‫sur notre page, n'est-ce pas ?

147
00:07:36,660 --> 00:07:39,920
‫Parce que personne ne va vraiment le voir puisque, oui,

148
00:07:39,920 --> 00:07:41,310
‫nous sommes en développement.

149
00:07:41,310 --> 00:07:44,323
‫Cela devrait donc fonctionner maintenant.

150
00:07:45,330 --> 00:07:48,793
‫Il ne nous reste plus qu'à recharger cette page.

151
00:07:51,950 --> 00:07:54,030
‫Mais maintenant, quelque chose ne va pas ici.

152
00:07:54,030 --> 00:07:57,470
‫Il dit donc qu'il n'a envoyé aucune donnée.

153
00:07:57,470 --> 00:07:58,633
‫Alors revenons ici.

154
00:07:59,470 --> 00:08:01,713
‫Eh bien, comme premier problème que je

155
00:08:02,650 --> 00:08:06,620
‫vois ici, je devrais avoir le code de statut et pas seulement le statut.

156
00:08:06,620 --> 00:08:08,870
‫C'est tout pour vérifier si nous avons une erreur ici.

157
00:08:08,870 --> 00:08:09,910
‫Oh oui.

158
00:08:09,910 --> 00:08:11,413
‫En fait, il y a des erreurs.

159
00:08:12,770 --> 00:08:16,203
‫Donc, c'était en fait le code d'état invalide.

160
00:08:17,770 --> 00:08:19,113
‫Donc ici, il devrait s'agir de code.

161
00:08:20,170 --> 00:08:21,723
‫Donnons-en une autre sauvegarde.

162
00:08:23,170 --> 00:08:24,590
‫Rechargez-le.

163
00:08:24,590 --> 00:08:28,000
‫Et maintenant, nous obtenons une page d'erreur ici.

164
00:08:28,000 --> 00:08:29,830
‫Eh bien, ce n'est pas vraiment formaté.

165
00:08:29,830 --> 00:08:32,830
‫Mais encore, il a le titre et plus important

166
00:08:32,830 --> 00:08:36,180
‫encore, il a ce message que nous venons de faire passer.

167
00:08:36,180 --> 00:08:38,600
‫Il n'y a donc pas de tournée avec ce nom.

168
00:08:38,600 --> 00:08:43,600
‫Et donc cela vient exactement de notre contrôleur de vues.

169
00:08:43,760 --> 00:08:45,340
‫Donc à partir d'ici.

170
00:08:45,340 --> 00:08:48,720
‫Alors rappelez-vous cette logique où nous créons une erreur ici qui

171
00:08:48,720 --> 00:08:50,920
‫est ensuite transmise à notre erreur globale

172
00:08:50,920 --> 00:08:52,393
‫et au middleware Lint.

173
00:08:53,340 --> 00:08:54,173
‫À droite?

174
00:08:54,173 --> 00:08:56,760
‫Et c'est donc lui qui ramassera

175
00:08:56,760 --> 00:08:59,700
‫ces erreurs et les enverra au client.

176
00:08:59,700 --> 00:09:02,300
‫Maintenant, dans notre cas, nous obtenons cette

177
00:09:02,300 --> 00:09:05,760
‫erreur car ici dans notre modèle, nous avons encore oublié

178
00:09:05,760 --> 00:09:07,770
‫de faire quelque chose.

179
00:09:07,770 --> 00:09:11,660
‫Ce qui est simplement pour étendre, bien sûr, notre modèle principal.

180
00:09:11,660 --> 00:09:12,810
‫À droite?

181
00:09:12,810 --> 00:09:17,810
‫Nous devons donc dire étendre au modèle de base.

182
00:09:19,690 --> 00:09:22,323
‫Et puis, comme toujours, créez ce bloc ici.

183
00:09:23,300 --> 00:09:26,040
‫Alors bloquez le contenu.

184
00:09:26,040 --> 00:09:29,200
‫Et puis tout cela doit être là-dedans.

185
00:09:29,200 --> 00:09:31,080
‫Et donc fondamentalement, ici, nous faisons

186
00:09:31,080 --> 00:09:35,070
‫exactement la même chose que nous avons fait dans tous les autres modèles.

187
00:09:35,070 --> 00:09:37,430
‫Donc, en gros, injectez ce contenu ici

188
00:09:37,430 --> 00:09:40,693
‫dans le blog de contenu dans le modèle de base.

189
00:09:42,370 --> 00:09:47,370
‫Donc, si nous rechargeons cela maintenant, cela semble enfin comme prévu.

190
00:09:48,090 --> 00:09:48,923
‫Bien?

191
00:09:49,870 --> 00:09:53,670
‫Et maintenant, si nous avons réellement eu une erreur dans notre

192
00:09:53,670 --> 00:09:56,290
‫code, et donc disons à nouveau

193
00:09:56,290 --> 00:09:59,210
‫que nous n'avons pas cette gestion d'erreur ici,

194
00:09:59,210 --> 00:10:02,713
‫alors bien sûr l'erreur entière est divulguée au client.

195
00:10:06,520 --> 00:10:09,410
‫Impossible donc de lire le nom de propriété de null.

196
00:10:09,410 --> 00:10:12,140
‫Et bien sûr, nous ne voulons pas que les visiteurs de

197
00:10:12,140 --> 00:10:14,630
‫notre site Web reçoivent ce genre d'erreur, n'est-ce pas ?

198
00:10:14,630 --> 00:10:17,040
‫Personne ne comprendrait vraiment ce que cela signifie.

199
00:10:17,040 --> 00:10:20,520
‫Et donc dans notre gestionnaire d'erreurs de production,

200
00:10:20,520 --> 00:10:22,570
‫occupons-nous maintenant de cela.

201
00:10:22,570 --> 00:10:25,300
‫Donc ici dans notre contrôleur d'erreur, appliquons

202
00:10:25,300 --> 00:10:28,770
‫maintenant la même logique que celle que nous avons ici.

203
00:10:28,770 --> 00:10:32,840
‫Testez donc si nous gérons actuellement l'API ou non.

204
00:10:32,840 --> 00:10:35,370
‫Et bien sûr, il pourrait y avoir des façons plus élégantes

205
00:10:35,370 --> 00:10:36,380
‫de le faire.

206
00:10:36,380 --> 00:10:38,820
‫Par exemple, vous pourriez avoir un middleware de

207
00:10:38,820 --> 00:10:41,450
‫gestion des erreurs complètement séparé juste pour l'API et

208
00:10:41,450 --> 00:10:44,020
‫un pour le site Web rendu, n'est-ce pas ?

209
00:10:44,020 --> 00:10:47,763
‫Mais encore une fois, je veux juste rester un peu simple ici.

210
00:10:49,160 --> 00:10:49,993
‫D'accord?

211
00:10:49,993 --> 00:10:52,283
‫Donc dans ce cas, c'est vraiment mon objectif principal.

212
00:10:53,570 --> 00:10:54,600
‫Bien.

213
00:10:54,600 --> 00:10:56,750
‫Sélectionnons tout cela.

214
00:10:56,750 --> 00:10:57,950
‫Oh, que s'est-il passé là-bas ?

215
00:11:04,880 --> 00:11:05,783
‫Ah, on y va.

216
00:11:07,628 --> 00:11:08,461
‫D'accord.

217
00:11:08,461 --> 00:11:09,773
‫Voilà pour l'API.

218
00:11:12,490 --> 00:11:15,140
‫Et maintenant, nous aurons en fait quelque chose de très similaire.

219
00:11:25,280 --> 00:11:27,883
‫Donc, celui-ci est, encore une fois, pour le site Web rendu.

220
00:11:30,950 --> 00:11:35,950
‫Appelons-le B ici et A pour celui-ci.

221
00:11:36,380 --> 00:11:38,790
‫Donc juste pour le séparer un peu mieux.

222
00:11:38,790 --> 00:11:40,873
‫Donc nous avons et puis B ici.

223
00:11:42,600 --> 00:11:45,513
‫Quoi qu'il en soit, cela ressemblera un peu à celui-ci.

224
00:11:46,700 --> 00:11:51,433
‫Et donc, si nous avons une erreur opérationnelle, alors la page

225
00:11:52,940 --> 00:11:54,470
‫d'erreur devrait ressembler

226
00:11:54,470 --> 00:11:57,470
‫à celle que nous avions ici auparavant.

227
00:11:57,470 --> 00:12:01,640
‫Mais au cas où il s'agirait d'une erreur de programmation ou

228
00:12:01,640 --> 00:12:05,950
‫d'une erreur inconnue, alors nous ne voulons pas le message complet,

229
00:12:05,950 --> 00:12:08,640
‫mais juste un message très générique.

230
00:12:08,640 --> 00:12:13,640
‫Donc quelque chose comme s'il vous plaît réessayez plus tard.

231
00:12:14,490 --> 00:12:15,660
‫Bien?

232
00:12:15,660 --> 00:12:18,770
‫Voyons maintenant quel type d'erreur nous obtenons ici.

233
00:12:18,770 --> 00:12:21,350
‫Et apparemment, nous obtenons ici quelque chose

234
00:12:21,350 --> 00:12:23,380
‫appelé une déclaration solitaire si.

235
00:12:23,380 --> 00:12:24,213
‫À droite.

236
00:12:24,213 --> 00:12:25,900
‫Alors oui, Lint ne veut pas

237
00:12:25,900 --> 00:12:29,000
‫vraiment que nous ayons seulement un if à l'intérieur d'un bloc else.

238
00:12:29,000 --> 00:12:31,580
‫Et je suis d'accord que ce

239
00:12:31,580 --> 00:12:34,280
‫n'est pas une belle pratique de codage.

240
00:12:34,280 --> 00:12:36,280
‫Et donc en fait, corrigeons cela en

241
00:12:37,500 --> 00:12:39,483
‫nous débarrassant de cela d'autre ici.

242
00:12:41,600 --> 00:12:42,740
‫Donnez-lui une sauvegarde.

243
00:12:42,740 --> 00:12:44,540
‫Et puis cette erreur a disparu.

244
00:12:44,540 --> 00:12:47,530
‫Mais maintenant, nous devons nous assurer que cela termine

245
00:12:47,530 --> 00:12:50,230
‫vraiment le cycle de réponse à la demande.

246
00:12:50,230 --> 00:12:54,843
‫Et donc nous devons revenir ici et ici aussi.

247
00:12:56,240 --> 00:12:57,580
‫Bien.

248
00:12:57,580 --> 00:13:02,150
‫Maintenant, une autre erreur ESLint, inutile d'autre après un retour.

249
00:13:02,150 --> 00:13:04,090
‫Et effectivement, c'est vrai aussi.

250
00:13:04,090 --> 00:13:05,760
‫Et j'ai en fait suivi cette règle

251
00:13:05,760 --> 00:13:08,330
‫tout au long du cours parce que je l'aime moi-même en tant

252
00:13:08,330 --> 00:13:09,453
‫que pratique de codage.

253
00:13:10,360 --> 00:13:13,723
‫Et donc, ouais, débarrassons-nous de ça d'autre ici alors.

254
00:13:15,000 --> 00:13:18,080
‫Je crois vraiment, et je le crois depuis longtemps,

255
00:13:18,080 --> 00:13:22,050
‫que cela semble beaucoup plus agréable sans ces instructions if else,

256
00:13:22,050 --> 00:13:25,660
‫mais uniquement avec un if, comme celui-ci ici, puis incluez

257
00:13:25,660 --> 00:13:28,253
‫le else en dehors de cela.

258
00:13:29,240 --> 00:13:31,300
‫D'accord, c'est ce que nous avons ici maintenant.

259
00:13:31,300 --> 00:13:33,373
‫Mettons aussi A et B ici.

260
00:13:34,240 --> 00:13:35,073
‫B.

261
00:13:36,020 --> 00:13:38,613
‫Et en fait, faisons exactement la même chose ici.

262
00:13:39,930 --> 00:13:41,033
‫Alors reviens.

263
00:13:44,820 --> 00:13:46,513
‫Renvoyez celui-ci également.

264
00:13:52,160 --> 00:13:53,653
‫Alors ici, A et B aussi.

265
00:13:57,150 --> 00:14:00,540
‫Donc, en fait, cela me semble plus propre.

266
00:14:00,540 --> 00:14:02,450
‫Maintenant, nous avons A ici et A

267
00:14:02,450 --> 00:14:04,733
‫à nouveau, mais bon, peu importe à ce stade.

268
00:14:05,570 --> 00:14:06,403
‫Bien.

269
00:14:07,320 --> 00:14:08,993
‫Alors revenez ici.

270
00:14:11,260 --> 00:14:12,190
‫Revenez ici.

271
00:14:12,190 --> 00:14:15,863
‫Et avant qu'il ne me crie dessus, supprimons ça.

272
00:14:17,630 --> 00:14:19,773
‫Et donc c'est encore mieux.

273
00:14:23,120 --> 00:14:24,833
‫Alors mettez ça ici.

274
00:14:25,770 --> 00:14:28,950
‫Et ça devrait être ça en fait.

275
00:14:28,950 --> 00:14:29,840
‫Bien?

276
00:14:29,840 --> 00:14:31,950
‫Par souci

277
00:14:31,950 --> 00:14:35,660
‫d'exhaustivité, copions également ce commentaire ici.

278
00:14:35,660 --> 00:14:39,333
‫Et puis appelez celui-ci à nouveau B.

279
00:14:41,160 --> 00:14:42,520
‫Bien.

280
00:14:42,520 --> 00:14:43,353
‫Parfait.

281
00:14:44,720 --> 00:14:46,910
‫En fait, copions celui-ci ici aussi dans

282
00:14:46,910 --> 00:14:48,603
‫la fonction de développement.

283
00:14:49,770 --> 00:14:52,500
‫Parce qu'à l'heure actuelle, une fois que nous avons

284
00:14:52,500 --> 00:14:55,723
‫renvoyé cette erreur, nous n'avons vraiment aucun moyen de voir l'erreur complète.

285
00:14:58,460 --> 00:15:02,930
‫D'accord, alors débarrassez-vous de cela pour le rendre plus visible.

286
00:15:02,930 --> 00:15:04,483
‫Et maintenant c'est beau.

287
00:15:05,740 --> 00:15:06,900
‫D'accord.

288
00:15:06,900 --> 00:15:08,800
‫Alors quittons-le ici maintenant

289
00:15:08,800 --> 00:15:12,300
‫afin que nous puissions démarrer notre application de production.

290
00:15:12,300 --> 00:15:15,670
‫Donc, en gros, l'exécute maintenant en production.

291
00:15:15,670 --> 00:15:18,500
‫Et nous avons un script

292
00:15:19,800 --> 00:15:23,970
‫pour ce qui s'appelle npm run start production.

293
00:15:27,220 --> 00:15:28,560
‫D'accord?

294
00:15:28,560 --> 00:15:31,100
‫Donc, si nous testons cela maintenant, nous

295
00:15:31,100 --> 00:15:34,430
‫ne devrions plus voir cette chaîne ici, vous vous souvenez ?

296
00:15:34,430 --> 00:15:37,090
‫Parce qu'à ce stade, nous n'avons aucune gestion d'erreur

297
00:15:37,090 --> 00:15:39,610
‫pour un nom de tournée invalide comme celui-ci.

298
00:15:39,610 --> 00:15:40,637
‫D'accord?

299
00:15:40,637 --> 00:15:41,470
‫À droite?

300
00:15:41,470 --> 00:15:42,303
‫Puisque nous sommes

301
00:15:42,303 --> 00:15:44,220
‫en production et que ce n'est pas une erreur

302
00:15:44,220 --> 00:15:46,127
‫opérationnelle, eh bien, nous ne voulons pas voir cela.

303
00:15:46,127 --> 00:15:49,400
‫Et c'est donc ce que nous venons de coder avant.

304
00:15:49,400 --> 00:15:53,030
‫Et donc en effet, c'est le message d'erreur plus générique.

305
00:15:53,030 --> 00:15:54,070
‫À droite?

306
00:15:54,070 --> 00:15:59,070
‫Mais si nous le remettons ensuite ici dans le contrôleur de vues,

307
00:16:00,800 --> 00:16:03,170
‫donc si nous remettons cette gestion

308
00:16:03,170 --> 00:16:06,150
‫d'erreur, alors bien sûr, puisque ce sera

309
00:16:06,150 --> 00:16:09,830
‫maintenant une erreur opérationnelle, alors nous obtiendrons bien sûr

310
00:16:09,830 --> 00:16:11,460
‫cette chaîne d'erreur.

311
00:16:11,460 --> 00:16:12,930
‫Parce qu'il est toujours

312
00:16:12,930 --> 00:16:15,400
‫agréable de montrer un message amical à l'utilisateur.

313
00:16:15,400 --> 00:16:18,453
‫Mais comme vous l'avez vu, cela ne s'est pas réellement produit.

314
00:16:19,540 --> 00:16:22,383
‫Alors pourquoi est-ce?

315
00:16:25,140 --> 00:16:28,450
‫Eh bien, nous sommes dans l'erreur de production.

316
00:16:28,450 --> 00:16:31,070
‫Nous sommes sur le site rendu.

317
00:16:31,070 --> 00:16:34,290
‫Et effectivement, nous avons une erreur opérationnelle.

318
00:16:34,290 --> 00:16:35,483
‫Et donc ...

319
00:16:39,010 --> 00:16:40,263
‫Nous avons cela en place.

320
00:16:41,200 --> 00:16:45,010
‫Et donc en effet, cela devrait fonctionner comme nous l'espérions.

321
00:16:45,010 --> 00:16:47,200
‫Eh bien, essayons simplement de connecter à la console

322
00:16:48,540 --> 00:16:49,880
‫le message de point

323
00:16:51,740 --> 00:16:54,573
‫d'erreur juste pour voir si nous l'avons réellement obtenu à ce stade.

324
00:16:56,140 --> 00:16:57,570
‫Bien.

325
00:16:57,570 --> 00:16:59,480
‫Rechargez ce gars.

326
00:16:59,480 --> 00:17:01,853
‫Et donc il y a l'erreur.

327
00:17:02,720 --> 00:17:05,170
‫Mais quand même, c'est très bizarre.

328
00:17:05,170 --> 00:17:07,363
‫C'est donc bien enregistré toute l'erreur.

329
00:17:15,210 --> 00:17:16,120
‫Très étrange.

330
00:17:16,120 --> 00:17:20,560
‫Parce que pour une raison quelconque, le message n'est pas non plus là.

331
00:17:20,560 --> 00:17:24,363
‫Reprenons donc le développement.

332
00:17:25,968 --> 00:17:26,883
‫Alors npm commence.

333
00:17:30,120 --> 00:17:30,953
‫Bien.

334
00:17:31,940 --> 00:17:35,460
‫Et ici, pour une raison quelconque, il a accès à ce message.

335
00:17:35,460 --> 00:17:38,110
‫Cela signifie donc que dans notre contrôleur de

336
00:17:38,110 --> 00:17:40,553
‫vues, nous définissons correctement ce message.

337
00:17:44,410 --> 00:17:45,983
‫Exécutez-le à nouveau en production.

338
00:17:48,080 --> 00:17:52,183
‫C'est donc le genre de trucs qu'on n'aime pas, non ?

339
00:17:54,370 --> 00:17:57,670
‫Voyons donc où notre erreur de production

340
00:17:57,670 --> 00:17:59,550
‫est réellement créée.

341
00:17:59,550 --> 00:18:01,320
‫Et c'est ici.

342
00:18:01,320 --> 00:18:04,720
‫Donc, cet objet d'erreur que nous utilisons ici en production

343
00:18:04,720 --> 00:18:08,020
‫est une copie de cette erreur, n'est-ce pas ?

344
00:18:08,020 --> 00:18:10,960
‫Donc celui qui entre dans ce middleware.

345
00:18:10,960 --> 00:18:15,960
‫Et donc jetons un coup d'œil aux deux dans

346
00:18:15,960 --> 00:18:17,083
‫la console.

347
00:18:18,850 --> 00:18:20,803
‫Donc message de point d'erreur.

348
00:18:23,636 --> 00:18:26,303
‫Et puis aussi le message de point d'erreur.

349
00:18:29,930 --> 00:18:31,203
‫Alors recommencez.

350
00:18:34,070 --> 00:18:35,620
‫D'accord.

351
00:18:35,620 --> 00:18:37,470
‫Nous voyons donc cette

352
00:18:37,470 --> 00:18:40,590
‫erreur, donc celle qui vient directement dans notre fonction

353
00:18:40,590 --> 00:18:42,630
‫middleware, a effectivement le message.

354
00:18:42,630 --> 00:18:45,730
‫Mais alors celui que nous copions, donc erreur, pour une raison

355
00:18:45,730 --> 00:18:47,380
‫quelconque, ne le fait pas.

356
00:18:47,380 --> 00:18:49,870
‫Et donc cette astuce que nous faisons ici,

357
00:18:49,870 --> 00:18:53,160
‫pour une raison quelconque, ne copie pas le message avec,

358
00:18:53,160 --> 00:18:54,130
‫d'accord ?

359
00:18:54,130 --> 00:18:57,930
‫Et donc faisons une solution rapide à cela.

360
00:18:57,930 --> 00:19:02,930
‫Et disons que le message de point d'erreur est égal au message de point d'erreur.

361
00:19:07,100 --> 00:19:07,933
‫Bien?

362
00:19:07,933 --> 00:19:10,963
‫Et cela devrait alors résoudre le problème, espérons-le.

363
00:19:13,210 --> 00:19:14,660
‫Ah, d'accord.

364
00:19:14,660 --> 00:19:15,653
‫Nous y voilà.

365
00:19:16,910 --> 00:19:17,743
‫À droite.

366
00:19:19,430 --> 00:19:22,930
‫Alors maintenant, vous voyez qu'ils sont en effet les mêmes.

367
00:19:22,930 --> 00:19:24,330
‫Et donc c'était ça le problème.

368
00:19:25,490 --> 00:19:26,330
‫Bien?

369
00:19:26,330 --> 00:19:28,010
‫Donc, sans cela,

370
00:19:28,010 --> 00:19:30,543
‫toutes les erreurs ne fonctionneraient pas correctement.

371
00:19:31,610 --> 00:19:33,860
‫Donc, si nous mettons cela ici et

372
00:19:33,860 --> 00:19:38,860
‫essayons de nous connecter par exemple, alors admin@natours. io.

373
00:19:47,490 --> 00:19:50,970
‫Donc, vous voyez, nous obtenons également une erreur indéfinie ici.

374
00:19:50,970 --> 00:19:51,890
‫Bien.

375
00:19:51,890 --> 00:19:54,630
‫Et c'est encore parce que nous sommes

376
00:19:54,630 --> 00:19:58,860
‫en production et que notre objet d'erreur n'a pas correctement copié le message.

377
00:19:58,860 --> 00:20:01,400
‫Je ne sais pas pourquoi je n'ai pas compris celui-ci alors

378
00:20:01,400 --> 00:20:03,780
‫que nous étions en train de le mettre en œuvre.

379
00:20:03,780 --> 00:20:07,253
‫Mais peut-être que je ne l'ai pas testé de manière suffisamment approfondie.

380
00:20:08,240 --> 00:20:09,640
‫D'accord?

381
00:20:09,640 --> 00:20:11,403
‫Et de toute façon, si nous

382
00:20:12,470 --> 00:20:15,320
‫essayons cela maintenant, nous obtenons alors le message d'erreur correct

383
00:20:15,320 --> 00:20:16,370
‫que nous attendons.

384
00:20:18,230 --> 00:20:19,300
‫Bien.

385
00:20:19,300 --> 00:20:20,133
‫Super.

386
00:20:20,133 --> 00:20:21,360
‫Donc c'est résolu.

387
00:20:21,360 --> 00:20:24,950
‫Et donc cela conclut réellement cette vidéo.

388
00:20:24,950 --> 00:20:26,250
‫Donc, juste en

389
00:20:26,250 --> 00:20:28,740
‫conclusion, nous avons maintenant une stratégie

390
00:20:28,740 --> 00:20:33,740
‫de gestion des erreurs qui fonctionne pour le développement, comme avant, et

391
00:20:34,050 --> 00:20:35,780
‫aussi pour la production.

392
00:20:35,780 --> 00:20:39,000
‫Et puis dans chacun d'eux, nous avons essentiellement deux branches.

393
00:20:39,000 --> 00:20:41,500
‫L'un envoie le message d'erreur pour l'API, ce

394
00:20:41,500 --> 00:20:43,397
‫qui est exactement ce que nous

395
00:20:43,397 --> 00:20:46,640
‫avions auparavant, puis nous avons également maintenant une sorte de gestionnaire

396
00:20:46,640 --> 00:20:48,430
‫pour le site Web rendu.

397
00:20:48,430 --> 00:20:52,220
‫Et donc dans ce cas, nous rendons notre modèle d'erreur.

398
00:20:52,220 --> 00:20:54,850
‫Ensuite, en production, nous distinguons

399
00:20:54,850 --> 00:20:57,620
‫également le site Web rendu et l'API.

400
00:20:57,620 --> 00:20:59,270
‫Et puis comme

401
00:20:59,270 --> 00:21:01,700
‫précédemment, à l'intérieur de chacune de

402
00:21:01,700 --> 00:21:03,784
‫ces branches, on distingue alors aussi

403
00:21:03,784 --> 00:21:06,293
‫les erreurs d'opération et les erreurs inconnues.

404
00:21:07,240 --> 00:21:09,140
‫Donc opérationnel et inconnu.

405
00:21:09,140 --> 00:21:13,230
‫Et puis à l'intérieur rendu, également opérationnel et inconnu.

406
00:21:13,230 --> 00:21:15,490
‫Et donc pour le site Web

407
00:21:15,490 --> 00:21:18,600
‫rendu, si nous avons une erreur opérationnelle, donc une erreur de

408
00:21:18,600 --> 00:21:21,270
‫confiance, alors nous envoyons notre message d'erreur de confiance.

409
00:21:21,270 --> 00:21:23,590
‫Mais dans le cas où nous ne faisons

410
00:21:23,590 --> 00:21:25,150
‫pas confiance à l'erreur,

411
00:21:25,150 --> 00:21:29,560
‫donc lorsque nous ne la connaissons pas, nous renvoyons simplement ce message générique à l'utilisateur.

412
00:21:29,560 --> 00:21:31,630
‫Tellement bon.

413
00:21:31,630 --> 00:21:35,050
‫Arrêtons cela ici et retournons au développement

414
00:21:35,920 --> 00:21:38,350
‫et terminons cette conférence.

415
00:21:38,350 --> 00:21:39,763
‫Alors à bientôt pour le prochain.

