﻿1
00:00:01,530 --> 00:00:03,010
‫Instructeur : Dans les

2
00:00:03,010 --> 00:00:05,020
‫deux dernières conférences, j'espère que vous avez commencé

3
00:00:05,020 --> 00:00:06,870
‫à acquérir les bases du développement Express.

4
00:00:06,870 --> 00:00:10,190
‫C'est donc le moment idéal pour approfondir un peu

5
00:00:10,190 --> 00:00:11,750
‫le fonctionnement d'Express,

6
00:00:11,750 --> 00:00:14,380
‫et pour cela, nous devons parler du

7
00:00:14,380 --> 00:00:16,633
‫middleware et du cycle requête-réponse.

8
00:00:17,550 --> 00:00:20,670
‫L'essence du développement Express est donc

9
00:00:20,670 --> 00:00:21,770
‫de

10
00:00:21,770 --> 00:00:24,960
‫comprendre et d'utiliser le cycle demande-réponse.

11
00:00:24,960 --> 00:00:27,280
‫Je veux donc rendre cette idée

12
00:00:27,280 --> 00:00:29,890
‫très claire de manière visuelle dans cette vidéo.

13
00:00:29,890 --> 00:00:32,410
‫Ainsi, pour démarrer le cycle demande-réponse,

14
00:00:32,410 --> 00:00:36,720
‫l'application Express reçoit une demande lorsque quelqu'un accède à un serveur pour

15
00:00:36,720 --> 00:00:39,310
‫lequel elle créera ensuite un objet de

16
00:00:39,310 --> 00:00:41,170
‫demande et de réponse.

17
00:00:41,170 --> 00:00:43,530
‫Ces données seront ensuite utilisées

18
00:00:43,530 --> 00:00:48,160
‫et traitées afin de générer et de renvoyer une réponse significative.

19
00:00:48,160 --> 00:00:50,740
‫Maintenant, afin de traiter ces données,

20
00:00:50,740 --> 00:00:53,740
‫dans Express, nous utilisons quelque chose appelé middleware,

21
00:00:53,740 --> 00:00:57,220
‫qui peut manipuler la requête ou l'objet de réponse.

22
00:00:57,220 --> 00:01:00,680
‫Ou exécutez vraiment tout autre code que nous aimons.

23
00:01:00,680 --> 00:01:02,820
‫Ainsi, le middleware ne doit pas

24
00:01:02,820 --> 00:01:05,230
‫toujours concerner uniquement la requête ou l'objet de

25
00:01:05,230 --> 00:01:08,070
‫réponse, mais il s'agit généralement principalement de la requête.

26
00:01:08,070 --> 00:01:10,880
‫Et en fait, nous utilisions déjà un middleware auparavant.

27
00:01:10,880 --> 00:01:15,130
‫Nous avons utilisé Express dot JSON pour accéder au corps de la requête sur

28
00:01:15,130 --> 00:01:16,600
‫l'objet de la requête.

29
00:01:16,600 --> 00:01:18,250
‫Vous vous en souvenez ?

30
00:01:18,250 --> 00:01:20,600
‫Maintenant, cela s'appelle middleware rappelez-vous parce

31
00:01:20,600 --> 00:01:23,930
‫que c'est une fonction qui est exécutée entre, donc au

32
00:01:23,930 --> 00:01:26,570
‫milieu de la réception de la demande et

33
00:01:26,570 --> 00:01:28,540
‫de l'envoi de la réponse.

34
00:01:28,540 --> 00:01:31,020
‫Et effectivement, on peut dire que dans

35
00:01:31,020 --> 00:01:33,010
‫Express, tout est middleware.

36
00:01:33,010 --> 00:01:35,270
‫Même nos définitions d'itinéraires.

37
00:01:35,270 --> 00:01:38,460
‫Encore une fois, même lorsque nous avons défini nos routes, nous

38
00:01:38,460 --> 00:01:42,120
‫pouvons considérer les fonctions de gestion de routes que nous avons écrites

39
00:01:42,120 --> 00:01:43,600
‫comme des fonctions middleware.

40
00:01:43,600 --> 00:01:45,120
‫Ce sont simplement des

41
00:01:45,120 --> 00:01:48,010
‫fonctions middleware qui ne sont exécutées que pour certaines routes.

42
00:01:48,010 --> 00:01:49,290
‫D'accord?

43
00:01:49,290 --> 00:01:52,840
‫Maintenant, quelques exemples d'intergiciels sont Express dot JSON, également

44
00:01:52,840 --> 00:01:54,860
‫appelé analyseur corporel, et que nous

45
00:01:54,860 --> 00:01:56,870
‫avons déjà utilisé auparavant.

46
00:01:56,870 --> 00:01:59,100
‫Ou une fonctionnalité de

47
00:01:59,100 --> 00:02:02,130
‫journalisation, ou la définition d'en-têtes http spécifiques.

48
00:02:02,130 --> 00:02:05,760
‫Les possibilités sont vraiment infinies avec le middleware.

49
00:02:05,760 --> 00:02:08,460
‫Très bien, et maintenant en termes plus

50
00:02:08,460 --> 00:02:11,000
‫techniques, nous disons que tous les middlewares

51
00:02:11,000 --> 00:02:12,370
‫que nous utilisons

52
00:02:12,370 --> 00:02:15,200
‫ensemble dans notre application sont appelés Middleware Stack.

53
00:02:15,200 --> 00:02:17,720
‫Ce qu'il est très important de garder à l'esprit

54
00:02:17,720 --> 00:02:20,230
‫ici, c'est que l'ordre des middleware dans la pile

55
00:02:20,230 --> 00:02:22,540
‫est en fait défini par l'ordre dans lequel

56
00:02:22,540 --> 00:02:24,500
‫ils sont définis dans le code.

57
00:02:24,500 --> 00:02:27,110
‫Ainsi, un middleware qui apparaît en premier dans

58
00:02:27,110 --> 00:02:29,920
‫le code est exécuté avant celui qui apparaît plus tard.

59
00:02:29,920 --> 00:02:33,170
‫Et donc l'ordre du code compte beaucoup dans Express.

60
00:02:33,170 --> 00:02:34,360
‫D'accord?

61
00:02:34,360 --> 00:02:38,010
‫Maintenant, vous pouvez penser à l'ensemble du processus comme celui-ci,

62
00:02:38,010 --> 00:02:40,120
‫nos objets de demande et de

63
00:02:40,120 --> 00:02:41,890
‫réponse qui ont été

64
00:02:41,890 --> 00:02:45,310
‫créés au début passent par chaque middleware où ils sont

65
00:02:45,310 --> 00:02:48,710
‫traités, ou où juste un autre code est exécuté.

66
00:02:48,710 --> 00:02:51,370
‫Ensuite, à la fin de chaque fonction middleware, une

67
00:02:51,370 --> 00:02:53,150
‫fonction suivante est appelée, qui est

68
00:02:53,150 --> 00:02:55,340
‫une fonction à laquelle nous avons accès

69
00:02:55,340 --> 00:02:56,860
‫dans chaque fonction middleware.

70
00:02:56,860 --> 00:02:59,580
‫Tout comme les objets de requête et de réponse.

71
00:02:59,580 --> 00:03:02,960
‫Et nous verrons bien sûr cela en code dans la prochaine vidéo.

72
00:03:02,960 --> 00:03:05,375
‫Ainsi, lorsque nous appelons la fonction

73
00:03:05,375 --> 00:03:08,470
‫suivante, le prochain middleware de la pile sera exécuté

74
00:03:08,470 --> 00:03:11,960
‫avec exactement le même objet de requête et de réponse.

75
00:03:11,960 --> 00:03:14,480
‫Et cela se produit avec tous les middlewares jusqu'à

76
00:03:14,480 --> 00:03:16,460
‫ce que nous atteignions le dernier.

77
00:03:16,460 --> 00:03:17,830
‫Et ainsi, juste

78
00:03:17,830 --> 00:03:20,360
‫comme ça, la requête initiale et l'objet

79
00:03:20,360 --> 00:03:23,400
‫de réponse parcourent chaque middleware étape par étape.

80
00:03:23,400 --> 00:03:25,490
‫Et vous pouvez considérer tout

81
00:03:25,490 --> 00:03:29,190
‫ce processus comme une sorte de pipeline par lequel nos données

82
00:03:29,190 --> 00:03:33,440
‫transitent, comme si elles étaient acheminées de la demande à la réponse finale.

83
00:03:33,440 --> 00:03:34,472
‫D'accord?

84
00:03:34,472 --> 00:03:36,900
‫Maintenant, à propos de cette dernière fonction middleware,

85
00:03:36,900 --> 00:03:40,230
‫il s'agit généralement d'un gestionnaire de route comme nous l'avons codé auparavant.

86
00:03:40,230 --> 00:03:43,250
‫Ainsi, dans ce gestionnaire, nous n'appelons pas la fonction

87
00:03:43,250 --> 00:03:45,270
‫next pour passer au middleware suivant.

88
00:03:45,270 --> 00:03:47,950
‫Au lieu de cela, nous renvoyons finalement les

89
00:03:47,950 --> 00:03:49,800
‫données de réponse au client.

90
00:03:49,800 --> 00:03:50,633
‫Et comme

91
00:03:50,633 --> 00:03:53,983
‫cela, nous terminons ensuite le cycle dit de demande-réponse.

92
00:03:55,380 --> 00:03:58,590
‫Donc, le cycle demande-réponse est vraiment tout ce dont

93
00:03:58,590 --> 00:04:00,900
‫nous avons parlé ici ensemble.

94
00:04:00,900 --> 00:04:03,040
‫Cela commence par la demande entrante, puis

95
00:04:03,040 --> 00:04:05,980
‫l'exécution de tous les middlewares de la pile middleware

96
00:04:05,980 --> 00:04:07,240
‫étape par étape,

97
00:04:07,240 --> 00:04:10,513
‫et enfin l'envoi de la réponse pour terminer le cycle.

98
00:04:11,370 --> 00:04:13,900
‫Alors vous voyez, ce n'est vraiment pas compliqué.

99
00:04:13,900 --> 00:04:16,450
‫C'est en fait juste un processus linéaire.

100
00:04:16,450 --> 00:04:19,200
‫Mais j'aurais aimé que quelqu'un me montre quelque

101
00:04:19,200 --> 00:04:22,000
‫chose comme ça quand j'apprenais à créer des applications Express.

102
00:04:22,000 --> 00:04:23,420
‫Je veux dire que

103
00:04:23,420 --> 00:04:26,090
‫je pouvais les construire, mais au début, je

104
00:04:26,090 --> 00:04:29,230
‫ne comprenais pas vraiment tout ce cycle requête-réponse comme celui-ci.

105
00:04:29,230 --> 00:04:30,760
‫C'était très déroutant.

106
00:04:30,760 --> 00:04:33,280
‫C'est pourquoi je vous montre ceci, car

107
00:04:33,280 --> 00:04:36,710
‫je pense que ce sera beaucoup, beaucoup, plus facile pour

108
00:04:36,710 --> 00:04:38,800
‫vous de passer au cours

109
00:04:38,800 --> 00:04:42,383
‫maintenant, après avoir compris exactement comment fonctionnent les applications Express.

