﻿1
00:00:01,437 --> 00:00:03,800
‫-: (Homme) Donc, dans cette conférence, vous

2
00:00:03,800 --> 00:00:07,093
‫allez apprendre à enchaîner plusieurs fonctions middleware pour le même itinéraire.

3
00:00:08,490 --> 00:00:11,500
‫Donc, jusqu'à présent, chaque fois que nous voulions

4
00:00:11,500 --> 00:00:15,610
‫définir un middleware, nous ne passions qu'une seule fonction de middleware.

5
00:00:15,610 --> 00:00:19,510
‫Ainsi, par exemple ici, pour gérer cette demande de publication,

6
00:00:19,510 --> 00:00:22,700
‫nous n'avons transmis que cette fonction middleware qui

7
00:00:22,700 --> 00:00:24,930
‫est notre gestionnaire createTour.

8
00:00:24,930 --> 00:00:27,400
‫D'accord? Et c'est donc la

9
00:00:27,400 --> 00:00:30,880
‫seule fonction qui sera appelée chaque fois que nous recevrons une demande de publication.

10
00:00:30,880 --> 00:00:33,840
‫Droit? Mais disons maintenant que

11
00:00:33,840 --> 00:00:35,940
‫nous voulons exécuter plusieurs fonctions middleware.

12
00:00:35,940 --> 00:00:39,280
‫Maintenant, vous pourriez demander « Pourquoi voudrions-nous faire cela ? ".

13
00:00:39,280 --> 00:00:42,713
‫Eh bien, nous pourrions, par exemple, exécuter un middleware avant

14
00:00:42,713 --> 00:00:45,760
‫createTour ici pour vérifier réellement les données qui entrent

15
00:00:45,760 --> 00:00:47,060
‫dans le corps.

16
00:00:47,060 --> 00:00:50,490
‫Droit? Donc un peu similaire à ce que nous avions avant.

17
00:00:50,490 --> 00:00:53,670
‫Nous avons donc déjà effectué cette vérification du middleware d'identification afin

18
00:00:53,670 --> 00:00:57,240
‫de vérifier si l'ID est réellement valide et de le faire en

19
00:00:57,240 --> 00:00:59,430
‫dehors des gestionnaires de routes réels afin

20
00:00:59,430 --> 00:01:03,140
‫qu'ils ne soient concernés que par l'obtention, la mise à jour ou la

21
00:01:03,140 --> 00:01:04,080
‫suppression d'une tournée.

22
00:01:04,080 --> 00:01:07,340
‫Droit? Et donc ici, dans cet exemple spécifique

23
00:01:07,340 --> 00:01:09,130
‫avec post, nous pourrions vouloir faire la même chose.

24
00:01:09,130 --> 00:01:12,900
‫Donc, comme je l'ai dit, nous pourrions vouloir vérifier si la demande. buddy contient en fait

25
00:01:12,900 --> 00:01:16,080
‫les données que nous voulons pour la tournée.

26
00:01:16,080 --> 00:01:18,440
‫D'accord? Et alors faisons-le.

27
00:01:18,440 --> 00:01:22,020
‫Et en fait, je veux que tu le fasses d'abord par toi-même.

28
00:01:22,020 --> 00:01:25,240
‫C'est donc une sorte de défi que je veux que vous releviez

29
00:01:25,240 --> 00:01:27,670
‫afin d'utiliser les concepts dont nous avons parlé

30
00:01:27,670 --> 00:01:30,450
‫tant de fois à ce stade et de créer votre

31
00:01:30,450 --> 00:01:31,450
‫propre fonction middleware.

32
00:01:32,470 --> 00:01:34,950
‫Alors permettez-moi de l'écrire ici en tant que commentaire.

33
00:01:34,950 --> 00:01:36,160
‫Je veux

34
00:01:39,370 --> 00:01:43,060
‫donc que vous créiez une fonction middleware checkBody et là-dedans,

35
00:01:43,060 --> 00:01:44,660
‫je veux que vous

36
00:01:47,620 --> 00:01:52,620
‫vérifiiez si le corps contient la propriété name pour le nom de la

37
00:01:52,670 --> 00:01:54,770
‫tournée et la propriété price.

38
00:01:54,770 --> 00:01:58,020
‫D'accord? Et sinon, je veux que vous renvoyiez

39
00:01:58,020 --> 00:01:59,590
‫un code d'état à quatre cents.

40
00:01:59,590 --> 00:02:04,000
‫Sinon, renvoyez quatre cents, ce qui signifie une

41
00:02:04,000 --> 00:02:05,630
‫mauvaise demande.

42
00:02:05,630 --> 00:02:09,190
‫Donc en gros, une demande invalide du client, qui

43
00:02:09,190 --> 00:02:13,060
‫dans ce cas essaie de créer un nouveau circuit sans nom

44
00:02:13,060 --> 00:02:15,090
‫et sans propriété de prix.

45
00:02:15,090 --> 00:02:16,693
‫D'accord! Et c'est en fait ça.

46
00:02:19,580 --> 00:02:20,640
‫Et (rires) en fait non.

47
00:02:20,640 --> 00:02:25,640
‫Je veux donc aussi que vous l'ajoutiez à la pile du gestionnaire de messages.

48
00:02:28,600 --> 00:02:29,900
‫Essentiellement. D'accord?

49
00:02:29,900 --> 00:02:31,700
‫Je veux donc que vous l'ajoutiez ici.

50
00:02:31,700 --> 00:02:33,430
‫Et je vais en fait vous dire comment

51
00:02:33,430 --> 00:02:35,730
‫faire cela parce que nous ne l'avons pas fait à ce stade.

52
00:02:35,730 --> 00:02:40,690
‫Donc c'est très facile. Disons que notre fonction s'appelle middleware

53
00:02:40,690 --> 00:02:43,590
‫et que vous devez donc simplement ajouter cette

54
00:02:43,590 --> 00:02:46,800
‫fonction ici avant le gestionnaire createTour qui créera finalement

55
00:02:46,800 --> 00:02:49,180
‫la visite. D'accord?

56
00:02:49,180 --> 00:02:53,630
‫Ainsi, lorsque nous avons une demande de publication pour

57
00:02:53,630 --> 00:02:57,334
‫cet itinéraire, il exécutera d'abord ce middleware,

58
00:02:57,334 --> 00:02:59,280
‫puis le createTour.

59
00:02:59,280 --> 00:03:02,740
‫D'accord? C'est ainsi que nous enchaînons deux middlewares différents.

60
00:03:02,740 --> 00:03:06,370
‫Mais maintenant, je veux que vous alliez de l'avant et que vous créiez

61
00:03:06,370 --> 00:03:08,290
‫ce middleware appelé en fait checkBody.

62
00:03:08,290 --> 00:03:11,423
‫Alors mettez la vidéo en pause maintenant et essayez de la faire vous-même.

63
00:03:15,220 --> 00:03:18,920
‫D'accord! J'espère donc que vous avez réussi à le

64
00:03:18,920 --> 00:03:21,250
‫faire et que vous l'avez ensuite testé et que tout fonctionne.

65
00:03:21,250 --> 00:03:24,323
‫Alors maintenant, permettez-moi d'aller de l'avant et de le mettre en œuvre à ma manière.

66
00:03:25,800 --> 00:03:28,210
‫Nous avons donc cette erreur ici, mais ne vous en souciez pas.

67
00:03:28,210 --> 00:03:31,083
‫C'est à cause de ce middleware qui n'est pas défini.

68
00:03:33,120 --> 00:03:36,553
‫Et laissez-moi le faire ici juste après le middleware checkID.

69
00:03:38,440 --> 00:03:40,297
‫Donc les exportations. checkBody.

70
00:03:44,760 --> 00:03:47,503
‫Nous devons demander une réponse et ensuite.

71
00:03:48,510 --> 00:03:51,560
‫Et donc c'est en fait assez simple.

72
00:03:51,560 --> 00:03:56,030
‫Donc s'il n'y a pas de demande. corps. nom, et je

73
00:03:57,050 --> 00:03:59,080
‫pense que c'est le nom, mais

74
00:03:59,080 --> 00:04:01,070
‫allons-y rapidement et vérifions cela.

75
00:04:01,070 --> 00:04:03,570
‫C'est donc ici que le tour est simple.

76
00:04:03,570 --> 00:04:05,340
‫Ouais, et en effet il s'appelle 'nom'

77
00:04:05,340 --> 00:04:06,790
‫et l'autre est 'prix'.

78
00:04:09,810 --> 00:04:13,420
‫Donc, s'il n'y a pas de nom de corps de requête

79
00:04:13,420 --> 00:04:17,560
‫ou pas de corps de requête. prix bien, dans

80
00:04:20,440 --> 00:04:24,460
‫ce cas, nous allons, comme avant, revenir de

81
00:04:24,460 --> 00:04:27,163
‫cette fonction et renvoyer une réponse.

82
00:04:28,500 --> 00:04:33,500
‫Donc, le statut ici est rappelez-vous : quatre cents ajoutent puis un

83
00:04:33,610 --> 00:04:37,283
‫« json » où le statut est échec.

84
00:04:38,520 --> 00:04:41,560
‫C'est donc toujours à ce moment-là que nous avons un code à quatre cents.

85
00:04:41,560 --> 00:04:42,750
‫Ajoutez ensuite le message

86
00:04:45,097 --> 00:04:46,180
‫« Nom

87
00:04:47,910 --> 00:04:49,400
‫ou prix manquant ».

88
00:04:49,400 --> 00:04:53,240
‫D'accord? Le prix et le nom doivent donc être présents en même temps.

89
00:04:53,240 --> 00:04:57,500
‫Donc, si le prix n'y est pas ou le nom n'y est

90
00:04:57,500 --> 00:04:59,993
‫pas, nous envoyons déjà ce message d'erreur.

91
00:05:00,830 --> 00:05:04,500
‫D'accord? Mais si tout est correct, alors nous

92
00:05:04,500 --> 00:05:06,283
‫voulons passer au middleware suivant.

93
00:05:07,864 --> 00:05:09,110
‫Et c'est ce que nous disons ici.

94
00:05:09,110 --> 00:05:12,650
‫Et puis le prochain middleware sera bien sûr createTour.

95
00:05:14,833 --> 00:05:15,666
‫Alors celui-ci.

96
00:05:17,260 --> 00:05:20,750
‫Alors, allons-y et ajoutez-le ici.

97
00:05:20,750 --> 00:05:22,150
‫Donc tourController. checkBody.

98
00:05:25,090 --> 00:05:29,180
‫Très bien, maintenant l'erreur a disparu et nous devrions

99
00:05:29,180 --> 00:05:33,562
‫pouvoir la tester maintenant. Alors fermons ceux qui

100
00:05:33,562 --> 00:05:38,000
‫ne nous intéressent pas et créons une nouvelle tournée.

101
00:05:38,000 --> 00:05:40,890
‫Donc en ce moment nous avons notre corps avec le nom, la durée et

102
00:05:40,890 --> 00:05:43,080
‫la difficulté mais il n'y a pas de prix.

103
00:05:43,080 --> 00:05:46,160
‫Nous devrions donc maintenant obtenir notre erreur. Droit?

104
00:05:46,160 --> 00:05:50,150
‫Alors testons ça. Envoyer. Et en effet, nous

105
00:05:50,150 --> 00:05:53,630
‫avons 'Nom ou prix manquant' avec notre quatre cents mauvaises requêtes.

106
00:05:53,630 --> 00:05:57,090
‫D'accord? Et donc, analysons à nouveau ce qui s'est passé ici.

107
00:05:57,090 --> 00:06:00,830
‫Notre demande a donc atteint cet itinéraire ici et

108
00:06:00,830 --> 00:06:05,360
‫c'était une demande de publication. Et donc, il exécute ensuite cette

109
00:06:05,360 --> 00:06:09,980
‫fonction middleware et à partir de cette fonction, nous envoyons ensuite cette réponse euh

110
00:06:10,830 --> 00:06:15,380
‫en disant que, euh, eh bien, le nom ou le prix est manquant.

111
00:06:15,380 --> 00:06:17,730
‫D'accord? Mais si maintenant ajoutez le prix... donc peu importe

112
00:06:21,530 --> 00:06:23,730
‫le prix, envoyez-le, eh bien tout

113
00:06:23,730 --> 00:06:26,940
‫fonctionne très bien et nous obtenons un 201 créé.

114
00:06:26,940 --> 00:06:29,083
‫Alors que s'est-il passé cette fois-ci ? Eh bien, il a vérifié le corps et

115
00:06:30,480 --> 00:06:34,380
‫cette condition n'était pas vraie et il

116
00:06:34,380 --> 00:06:37,650
‫a donc appelé le prochain middleware dans la pile qui est createTour.

117
00:06:37,650 --> 00:06:41,420
‫Alors il a créé une tournée et renvoyé le résultat

118
00:06:41,420 --> 00:06:44,540
‫et comme ça, a terminé le cycle demande-réponse.

119
00:06:44,540 --> 00:06:47,790
‫Droit? J'espère donc que c'était un, euh, joli petit défi

120
00:06:47,790 --> 00:06:52,790
‫et nous utiliserons ce genre de

121
00:06:52,930 --> 00:06:56,340
‫logique ici tout le temps où nous enchaînons plusieurs

122
00:06:56,340 --> 00:06:59,560
‫types de gestionnaires ici pour le même itinéraire. Ainsi par exemple ici, nous pourrions vérifier si un certain utilisateur

123
00:06:59,560 --> 00:07:02,760
‫est connecté ou s'il

124
00:07:02,760 --> 00:07:06,540
‫a les privilèges, donc les droits d'accès, pour même écrire une nouvelle visite.

125
00:07:06,540 --> 00:07:10,320
‫Ou vraiment toutes sortes de choses que nous voulons faire avant

126
00:07:10,320 --> 00:07:13,300
‫que la tournée ne soit réellement créée.

127
00:07:13,300 --> 00:07:15,940
‫D'accord? Et encore une fois, nous le faisons parce que nous voulons prendre

128
00:07:15,940 --> 00:07:19,100
‫toute la logique qui n'est pas

129
00:07:19,100 --> 00:07:22,360
‫vraiment concernée par la création de la nouvelle ressource en dehors de ce gestionnaire. De sorte que ce gestionnaire n'est vraiment concerné

130
00:07:22,360 --> 00:07:25,860
‫que par le

131
00:07:25,860 --> 00:07:27,890
‫travail qu'il est censé faire.

