‫Cette vidéo est encore une autre très excitante, car
‫nous allons maintenant créer notre tout
‫premier vrai serveur Web capable d'accepter les demandes et de
‫renvoyer les réponses.
‫Et la première étape consiste à inclure encore un autre package ou
‫un autre
‫module, et celui-ci s'appelle http.
‫Nous utilisons donc à nouveau la
‫fonction require, puis nous demandons le module http intégré, et c'est celui
‫qui nous donne des capacités de mise en réseau
‫telles que la construction d'un serveur http.
‫Maintenant, commentons ce code ici
‫afin qu'il ne nous gêne pas.
‫Alors créons une sorte de diviseur ici.
‫Donc celui-ci est
‫classé, et celui-ci est pour le serveur.
‫Et maintenant, pour construire notre serveur, nous
‫devons faire deux choses.
‫Premièrement, nous créons un serveur,
‫puis deuxièmement, nous démarrons le serveur afin
‫que nous puissions réellement écouter les requêtes entrantes.
‫Nous utilisons notre module http et comme avant, nous avons utilisé une
‫méthode qui se trouve sur cet objet.
‫Donc, tout comme nous l'avons fait avec le module fs.
‫Alors, http. createServer et
‫create server accepteront une fonction de rappel, qui
‫sera déclenchée chaque fois qu'une
‫nouvelle requête arrivera sur notre serveur.
‫Et cette fonction de rappel
‫a accès à deux variables très importantes et fondamentales.
‫C'est la variable de requête et une variable de réponse.
‫Et un peu plus à leur sujet dans une seconde.
‫Donc, demande et
‫réponse, donc tout ce que nous
‫voulons faire maintenant est de renvoyer une réponse au
‫client et nous le faisons avec res. qui est cet objet ici, cet objet réponse, . fin, puis « Bonjour
‫du serveur ! '. fin, puis « Bonjour du serveur ! '.
‫C'est donc la réponse que nous allons renvoyer.
‫Encore une fois, chaque
‫fois qu'une nouvelle demande arrive sur notre serveur, cette fonction de rappel ici sera appelée,
‫et la fonction de rappel aura accès à l'objet de demande qui
‫contient toutes sortes de choses comme l'URL de la
‫demande et un tas d'autres choses.
‫D'un autre côté, cet objet de
‫réponse nous donne ici beaucoup d'outils pour traiter
‫la réponse, donc pour
‫envoyer la réponse.
‫Le plus simple est. end, et cette fin ici, le
‫nom de cette méthode aura un peu plus de sens
‫un peu plus tard.
‫Pour l'instant, sachez simplement que c'est le moyen le plus simple de renvoyer
‫une réponse très, très simple dans ce cas.
‫C'est donc vraiment tout ce que nous
‫avons à faire pour renvoyer une réponse en texte brut
‫lorsqu'une certaine demande arrive.
‫Maintenant, si vous êtes un peu confus au sujet
‫de tous ces termes, comme
‫une demande entrante ou l'envoi de réponses, ou même sur
‫la raison pour laquelle nous avons réellement des demandes et des réponses
‫ici sur notre serveur, ne vous inquiétez pas, car nous
‫avons toute une conférence à venir sur le fonctionnement du
‫Web, où nous allons parler du modèle client-serveur
‫et du fonctionnement des applications réseau en général.
‫Encore une fois, dans cette section, mon objectif principal
‫est de vous montrer toutes les choses et de vraiment
‫les faire fonctionner, puis la théorie
‫suivra un peu plus tard.
‫C'est donc la philosophie que j'ai
‫utilisée dans tous mes autres cours, et cela
‫fonctionne très bien, et je
‫pense donc que c'est une bonne chose de le faire ici aussi.
‫Quoi qu'il en soit, la
‫création d'un serveur était la première partie,
‫et maintenant la deuxième partie consiste à écouter les demandes entrantes du client.
‫Maintenant, pour ce faire, nous devons en fait enregistrer
‫le résultat de ce createServer ici dans une nouvelle variable.
‫Donc, nous l'appelons généralement serveur, donc serveur est
‫le résultat de cette méthode createServer ici.
‫Il va donc créer un
‫serveur, et maintenant nous utilisons ce serveur et sur celui-ci nous pouvons appeler listen.
‫Listen accepte quelques paramètres, le premier est le port,
‫et généralement le port que
‫nous utilisons dans Note est, par exemple, 8000.
‫Mais vous verrez d'autres nombres comme
‫3000, ou 80, ou quelque chose comme ça.
‫Et au cas où vous vous demanderiez ce qu'est
‫réellement un port, eh bien, cela n'a pas vraiment d'importance, mais tout
‫ce que vous devez savoir, c'est qu'il s'agit essentiellement d'une
‫sous-adresse sur un certain hôte,
‫et l'hôte est ce que nous spécifions ensuite.
‫En fait, nous n'avons pas besoin de le spécifier, puis
‫nous utiliserons par défaut un hôte local, mais
‫nous pouvons en fait le
‫spécifier également explicitement à un hôte local.
‫Ainsi, l'hôte local a généralement cette adresse par défaut,
‫et l'hôte local signifie simplement l'ordinateur actuel.
‫Donc, l'ordinateur sur lequel le programme s'exécute actuellement.
‫Et encore une fois, il
‫s'agit de l'adresse IP standard de cet hôte local.
‫Celui-ci commencera donc à écouter les demandes entrantes.
‫Donc, en gros, démarrer le serveur.
‫Et comme argument facultatif, nous pouvons également passer une
‫fonction de rappel,
‫qui sera exécutée dès que
‫le serveur commencera à écouter.
‫Donc ici, il est assez courant d'afficher simplement un message indiquant
‫que le serveur a été démarré.
‫Disons donc écouter les requêtes sur le port 8000.
‫Et maintenant, tout ce que nous avons à faire
‫est d'aller à cette URL sur notre ordinateur sur le port 8000.
‫Maintenant, avant de pouvoir le
‫faire, bien sûr, nous devons exécuter l'application Note, donc
‫note index. js, et ici nous avons notre serrure.
‫Donc écoute de la requête sur le port 8000.
‫Et vous voyez que l'application
‫continue de fonctionner, donc avant elle s'arrêtait toujours
‫tout de suite, alors elle a fait son
‫travail, puis elle a quitté l'application.
‫Pour le moment, ça ne fait pas ça.
‫C'est à cause de quelque chose appelé
‫la boucle d'événement dont nous allons parler un
‫peu plus tard dans une autre section de ce cours.
‫Mais, quelles que soient les raisons techniques à
‫cela, il est évident que l'application ne peut pas vraiment
‫se fermer tout de suite, car nous ne pourrions alors plus recevoir de nouvelles demandes.
‫Ainsi, lorsque nous démarrons un serveur, Note ne
‫peut pas simplement quitter le processus, alors quittez le
‫programme, car le
‫but est d'attendre que les demandes arrivent.
‫C'est donc ce que je vais vous montrer ensuite.
‫Pour l'instant, ouvrons simplement l'adresse IP sur le port 8000.
‫Et pour cela, nous utilisons les deux points, puis le numéro de port.
‫Il s'agit donc de l'hôte, qui est l'hôte local, les
‫deux points, puis le numéro de port.
‫Appuyez sur Entrée, et c'est parti.
‫Alors, bonjour du serveur !
‫Et donc oui, ça marche vraiment.
‫Vous avez un vrai serveur Web exécuté sur votre
‫ordinateur en utilisant NoteJS, félicitations.
‫Revenons donc ici et, encore une fois, analysons ce qui s'est passé ici.
‫Nous avons créé notre serveur à l'aide de
‫createServer et transmis une fonction de rappel qui est exécutée chaque fois
‫qu'une nouvelle requête arrive sur le serveur, puis nous
‫avons commencé à écouter
‫les requêtes entrantes sur l'adresse IP de
‫l'hôte local, puis sur le port 8000.
‫Une fois que tout cela était en marche, nous avons en fait fait la
‫demande en cliquant sur cette URL.
‫Donc, fondamentalement, en frappant l'hôte local sur le port 8000.
‫Ainsi, sous le capot
‫de NoteJS, un événement a été déclenché, ce
‫dont, encore une fois, nous allons parler un peu plus tard.
‫Mais ce qui compte ici, c'est que cet événement a
‫ensuite fait en sorte que cette fonction de rappel a été appelée.
‫Et finalement à la suite
‫de cela, nous avons ensuite récupéré cette chaîne.
‫Juste par curiosité, jetons un coup d'œil
‫à l'objet de requête.
‫Nous devons fermer le serveur et le
‫redémarrer car nous avons apporté quelques modifications au code.
‫Et remarquez comment cette fois j'ai utilisé le contrôle C
‫pour quitter l'application.
‫Alors rappelez-vous qu'au début lorsque nous utilisions le
‫ripple, j'utilisais le contrôle D
‫pour le quitter.
‫Mais maintenant, lorsque nous
‫avons un programme Note exécuté comme celui-ci, nous devons
‫utiliser le contrôle C pour rompre essentiellement avec ce programme.
‫C'est pourquoi ici j'ai utilisé le contrôle C et tout
‫au long du
‫reste du cours, lorsque je veux terminer un programme,
‫j'utiliserai toujours le contrôle C.
‫Donc, c'est le contrôle et non la commande C, encore une fois.
‫Même sur un Mac, vous devez utiliser le contrôle C.
‫Faisons cela à nouveau, nous obtenons la même réponse, mais maintenant
‫nous devrions avoir quelque chose dans la console.
‫Voici donc l'objet de requête, et comme je l'ai mentionné, il
‫y a une tonne de choses ici.
‫Tu le vois?
‫Tout cela, il ne rentre même pas dans la console.
‫Je pense que
‫je ne peux même pas vous montrer toutes les données intéressantes qui s'y trouvent.
‫En fait, ici, nous avons des en-têtes, nous avons
‫donc l'hôte et ici, nous en avons...
‫Encore une fois, nous avons
‫donc des en-têtes http, ce dont nous allons parler,
‫je pense, dans la prochaine vidéo.
‫Quoi qu'il en soit, ce qui compte ici,
‫c'est que nous ayons vraiment accès
‫à toutes sortes de choses lorsque nous traitons la demande et envoyons la réponse.
‫Peu importe ici, débarrassons-nous en
‫fait de cela, sauvegardons-le, puis arrêtons-le et redémarrons-le.
‫Et maintenant, juste pour terminer cette
‫vidéo, je veux vous montrer ce que nous allons réellement construire
‫dans les deux prochaines conférences
‫jusqu'à la fin de cette section.
‫C'est donc cette petite application amusante appelée la ferme de nœuds.
‫Nous avons quelques produits ici, et nous
‫avons construit tout cela ici à l'aide d'un modèle html très simple, et
‫vous pouvez ensuite cliquer sur le lien et cela
‫vous mènera essentiellement
‫à la page de détail de ce
‫produit, dans ce cas les avocats.
‫Il y a un tas de données ici,
‫un bouton qui ne fait rien, et puis nous
‫pouvons revenir à la page.
‫Donc, les avocats, puis nous avons le fromage
‫par exemple, et il a ensuite,
‫bien sûr, des données différentes pour chacun de ces produits.
‫Il a donc ce joli
‫design frais et fou pour le faire ressortir
‫un peu, et oui, je pense que c'est un petit projet amusant.
‫Et nous allons commencer à le construire en
‫fait, juste dans la prochaine vidéo.