‫Instructeur : Dans cette vidéo
‫et la suivante, nous allons plonger dans un
‫autre élément important de l'architecture Node JS avec
‫les événements JS et l'architecture événementielle.
‫Ainsi, la plupart des modules de base de
‫Node, comme ceux que nous avons déjà utilisés, comme HTTP, File System et
‫Timers, sont construits autour d'une architecture événementielle, et nous
‫pouvons bien sûr également utiliser cette
‫architecture à notre avantage dans notre propre code.
‫Et le concept est en fait assez simple.
‫Ainsi, dans Node, il existe certains objets appelés
‫émetteurs d'événements qui émettent des événements nommés dès
‫que quelque chose d'important se produit dans l'application, comme une
‫requête atteignant le serveur, ou une minuterie expirant, ou un
‫fichier se terminant à lire.
‫Ces événements peuvent ensuite être récupérés par les écouteurs
‫d'événements que nous, les développeurs, avons configurés, qui
‫déclencheront les fonctions de rappel qui sont attachées à chaque écouteur, d'accord.
‫Donc, encore une fois, d'une part, nous avons
‫des émetteurs d'événements et, d'autre part, des écouteurs d'événements qui
‫réagiront aux événements émis en appelant la fonction de rappel.
‫Simple, non ?
‫Et probablement la meilleure façon de comprendre cela
‫est de regarder un exemple.
‫Et donc, comprenons brièvement comment Node utilise
‫l'architecture événementielle pour gérer les requêtes du serveur dans
‫le module HTTP que nous avons déjà utilisé dans une autre section.
‫Ainsi, lorsque nous voulons créer un serveur,
‫nous utilisons la méthode
‫Create Server et l'enregistrons dans une variable de serveur.
‫Cette implémentation ici est un peu différente
‫de ce que nous faisions auparavant, mais elle fonctionne exactement de la même manière.
‫Quoi qu'il en soit, ce serveur. on method est la
‫façon dont nous créons réellement un écouteur, et dans ce cas pour l'événement "request".
‫Supposons donc que notre serveur
‫fonctionne et qu'une nouvelle demande soit effectuée.
‫Le serveur agit comme un émetteur et émettra automatiquement un
‫événement appelé « requête » à chaque fois qu'une requête
‫parvient au serveur.
‫Simple, non ?
‫Ensuite, puisque nous avons déjà un
‫écouteur configuré pour cet événement précis, la fonction de rappel que
‫nous avons attachée à cet écouteur sera automatiquement appelée.
‫Et ce genre de fonction que nous
‫connaissons déjà auparavant, il renverra simplement des données au client.
‫Maintenant, cela fonctionne de cette façon car dans les
‫coulisses, le serveur est en fait une instance de
‫la classe Node JS EventEmitter, il hérite donc
‫de toute cette logique d'émission et d'écoute d'événements de cette classe
‫EventEmitter, et ne vous inquiétez pas, nous allons utiliser
‫tout va bien dans la vidéo suivante, afin que
‫vous vous familiarisiez avec toutes ces logiques.
‫Maintenant, juste pour terminer cette conférence,
‫je pense qu'il est important de mentionner que cette logique
‫EventEmitter est appelée le modèle d'observateur dans la programmation
‫Javascript en général, et c'est un modèle assez populaire avec
‫de nombreux cas utilisés.
‫Donc, l'idée est que j'y
‫place un observateur, dans ce cas l'auditeur d'événement,
‫qui continue d'attendre, continue d'observer le sujet qui
‫finira par émettre l'événement que l'auditeur attend.
‫Et le contraire de ce modèle est simplement des fonctions
‫appelant d'autres fonctions, ce à quoi nous sommes plus
‫habitués en fait, n'est-ce pas ?
‫Mais le modèle d'observateur a
‫été conçu pour réagir plutôt que pour appeler.
‫Et c'est parce qu'il y a un énorme avantage
‫à utiliser cette architecture, qui est le fait
‫que tout est plus découplé.
‫Nous n'avons pas, par exemple, de fonctions du
‫module File System appelant des fonctions du module HTTP car
‫ce serait un énorme gâchis.
‫Au lieu de cela, ces modules sont bien
‫découplés et autonomes, chacun émettant des événements
‫auxquels d'autres fonctions, même s'ils proviennent d'autres
‫modules, peuvent répondre.
‫De plus, l'utilisation d'une architecture événementielle permet
‫de réagir plus facilement plusieurs fois au
‫même événement.
‫Tout ce que nous avons à faire est de configurer plusieurs auditeurs, n'est-ce pas ?
‫D'accord et c'est l'architecture événementielle de Node en
‫un mot.
‫Et ne vous inquiétez pas si cela vous semble un peu
‫trop théorique, vous verrez cette logique être utilisée
‫dans de nombreuses situations tout au long du cours, dès la prochaine vidéo.