L'essentiel de Node.js

Se servir des sorties classiques

TESTEZ LINKEDIN LEARNING GRATUITEMENT ET SANS ENGAGEMENT

Tester maintenant Afficher tous les abonnements
Dans un système en ligne de commande, vous disposez également d'entrées et de sorties classiques. Ces entrées et sorties vous permettront de travailler avec votre nouveau serveur.
10:15

Transcription

Alors, vous avez vu qu’il était très simple de venir afficher des informations dans la console avec console.log, Ouais, mais c’est pas vraiment la façon la plus élégante de faire ça. La façon la plus élégante de faire ça c’est d’utiliser process qu’on a vu juste avant. Il faut savoir qu’il y a deux tampons qui sont utilisables, qui sont frères : stdout et stdin. Alors stdin ça va nous permettre d’attendre des informations rentrantes et stdout évidemment d’écrire sur le tampon de sortie, donc actuellement pour nous la console. On peut utiliser write sur stdout Par exemple, si je dis coucou comme ça, c’est vrai que c’est sympa parce que hop, mon programme peut dire coucou. Mais on remarque quand même qu'il peut y avoir des petits défauts d’affichage de temps en temps. Alors on aimerait bien pourquoi pas, sauter des lignes, pas de problème. On va utiliser le « \n », certains le connaissent déjà, qui va nous permettre ici de venir sauter des lignes et donc d’afficher des sauts de ligne dans la console. Donc ça c’est une des premières particularités intéressantes de stdout. Mais on peut aussi utiliser, je vous l'ai dit stdin pour récupérer de l'information. Et là avec ces deux possibilités-là, on va pouvoir se coder, pourquoi pas un petit robot. Allez, on code un robot. On va créer des questions. Et à l’intérieur on va mettre donc trois questions, des petites questions toutes basiques qui vont nous permettre de demander à notre utilisateur comment il s’appelle. Donc: comment t’appelles-tu ? Ça va nous permettre de lui demander : comment t’appelles-tu ? Et puis ensuite on va aussi lui demander à notre utilisateur, pourquoi pas : que fais-tu dans la vie ? Que fais-tu dans la vie ? Et enfin on va lui demander ensuite : quel est le langage de programmation qu’il préfère. Donc : Quel est ton langage de programmation préféré ? En faisant ça on va permettre à notre sortie d’afficher au fur et à mesure les différentes questions. Alors le souci qu’on va avoir c’est qu’effectivement il va bien falloir travailler ces différentes questions et les afficher au fur et à mesure. Comment on va faire pour les afficher au fur et à mesure ? Bah on va se créer une petite fonction ask avec un index à l’intérieur et cet index-là va venir utiliser la question que l’on veut. Il va falloir bien évidemment qu’on vienne travailler cette information là, et donc on utilise process qu’on a vu précédemment, avec stdout pour venir afficher la bonne question. Or comment je vais l’afficher ? Je vais utiliser ce qu’on vu avant, c'est-à-dire write et puis tout simplement ici stdout write. Je vais faire un write de quoi ? De questions qu’on a vu juste avant aussi Donc là je vais utiliser ce qu’on avait déjà utilisé, c'est-à-dire les guillemets qui sont penchés. On va utiliser notre array questions comme ça, et on va lui passer l'index. On ferait bien attention parce que ça veut dire que du coup ici ce serait bien d’avoir pourquoi pas des petits saut de ligne et puis à la fin aussi des petits saut de ligne pour éviter qu’à chaque fois on ait tout sur la même ligne parce que c’est, malheureusement sinon, ce qui va se passer. Ce qui serait intéressant aussi maintenant ce serait de pouvoir, bah pourquoi pas, jouer ces trois questions à la suite Au tout début pour les jouer, on va pas s’embêter, on va faire ask(0), bien sûr évidemment, ask(1) et ask(2). Et vous verrez qu’effectivement en faisant ça on va avoir, poum, les trois questions qui vont partir Mais ce serait bien si on le rendait dynamique, c'est-à-dire que on pourrait, pourquoi pas, s’attendre à de l’information et puis à chaque fois qu’on va avoir une nouvelle information, boum, on jouerait la question suivante. Eh bien pour ça, on peut tout à fait se câbler sur le process « stdin. » et puis là on va utiliser un événement dessus. Donc je vais vous montrer comment ça marche : stdin comme ça, et puis on va attendre des datas. Et quand ces datas-là vont arriver, on va faire quelque chose avec ces datas. Et pourquoi pas, ce qui pourrait être intéressant, ce serait de les afficher. On pourrait réutiliser le stdout comme ça et venir afficher la réponse à l’utilisateur. Alors évidemment ça a pas à avoir un sens vraiment intéressant de faire ça, mais c’est vrai qu’après ça pourrait être sympa, et puis, pourquoi pas, les sauvegarder. Pour faire ça, on va ici faire un affichage de data, mais pas data de base parce que data de base c’est pas exploitable. On va utiliser toString. ToString nous permettra de faire vraiment l’affichage de la data et de la récupérer. On est pas obligé de mettre autant de saut de ligne non plus, parce que évidemment, bon bah ça peut être collé tout simplement, donc on pourrait juste avoir un saut de ligne ici, la réponse, puis après de toute façon ça sautera forcément à la ligne. Maintenant comment je vais faire pour venir jouer la question suivante ? Parce que je vais commencer forcément avec la zéro, mais ça va me jouer à chaque fois la zéro, alors ça va pas forcément être intéressant. Donc il faudrait qu’on puisse ici faire un ask d’un index qui soit différent à chaque fois. Alors la meilleure des solutions ce serait de stocker, pourquoi pas, les réponses. Donc les réponses ça va être ici des answers. Donc concrètement ça va être comme ça : ici on va se stocker, hop, un petit tableau, et à chaque fois que l’utilisateur va répondre, on va venir câbler à l’intérieur ici, les différentes réponses, en faisant un push et en venant récupérer ce que l’utilisateur, eh bien, a tapé. Or comment on va faire ça ? Bah simplement on va utiliser ce qu’on a utilisé juste au dessus. On va pousser la string et puis ce sera bien suffisant. Et du coup on va pouvoir ensuite faire un ask ici. Et qu’est-ce que ça va être l’index? Tout simplement ça va être ici le « length - 1 », pourquoi ? Parce que à chaque fois on va vouloir avoir la prochaine étape, la prochaine question. Donc on pourrait tout simplement faire un « - 1 » ici. Et est-ce que ça marcherait directement ? Alors attention parce que length de answer part à zéro automatiquement. Donc ça veut dire qu’ici si je lui mets ça comme ça, on peut voir ce que ça va donner. Déjà ce que vous pouvez voir qui est génial c’est que ça attend : Comment t’appelles-tu ? On va dire Julien. On fait un Entrée. Il va m’afficher Julien. Que fais-tu dans la vie ? Je développe. Et puis ok. Ton langage de programmation préféré ? Javascript, comme ça. Ah, bah là il me dit : undefined maintenant. Alors, vous voyez qu’ici effectivement, si j’utilise le length de base, ça marche très bien, pourquoi ? Parce que au début en fait là vous êtes à 0. Donc après, ça va être ici à 1, et du coup, ça va me jouer la prochaine question. Donc ça va être génial. Alors je vais avoir un problème quand même. Le problème que je vais rencontrer, c’est que d’abord, ça sert absolument à rien ici de venir écrire la sortie. Pourquoi ? Parce qu'à ce moment là, moi j’ai pas besoin de l’écriture, je l’ai déjà en console, donc vous voyez que de temps en temps faut d’abord réfléchir un peu le programme, on voit qu’ici pas besoin d’écrire la sortie. Maintenant le deuxième problème qu’on a, c’est qu’on aimerait bien à la fin quand il n’y a plus du tout en fait de réponse à donner, c’est terminé, on aimerait bien sortir complètement. Alors comment je vais faire ? Il faut que je vérifie que j’ai le même length sur les réponses et sur les questions et pour ça bah ici on pourrait tout simplement faire un if et puis dans ce cas là questions.length est égal à réponse hein, comme ça, « .length ». Et si à ce moment là c’est égal, bah je demande au process de sortir, process.exit. C’est comme ça qu’on va faire pour câbler une sortie. Vous voyez qu’on peut utiliser le process pour faire des entrées, pour faire des sorties et puis aussi pourquoi pas pour complètement sortir. Maintenant on pourrait tester ici notre serveur. Donc : Comment t’appeles-tu ? Bon, toto, toto, et toto. C’est pour tester hein, et hop ça s’arrête à la fin. Vous voyez, vous avez aussi la possibilité de sortir et donc de faire une vérification sur la sortie. Mais c’est pas tout, parce que vous avez ici câblé un événement sur stdin. Le stdin c’est le pipe d’entrée, donc c’est ce qui permet en fait de travailler avec les entrées d’information. Eh bien, sachez que les événements, vous les avez aussi directement ici sur l’objet process. On pourrait lui dire que quand il va sortir process.on('exit'), eh bien je fais quelque chose de particulier. Et à ce moment-là effectivement, on pourrait venir travailler avec ce qui a été ajouté dans les réponses puisqu’on va bénéficier de trois réponses hein : 0, 1, 2. Et puis à ce moment-là on peut tout à fait travailler ici à stdout particulier en affichant ici les différentes informations, c'est-à-dire donc ce qui va être à l’intérieur de answer, answers 0 et puis ensuite, pourquoi pas le 1 et puis ensuite, pourquoi pas le 2. Donc là on va mettre le 1 ici et puis à la suite on va venir coder le 2 et on va simplement ici lui reposer les questions. Donc : toto, mécano, et : quel est ton langage préféré ? javascript. Et on a : toto, mecano, javascript. Alors vous ferez attention, parce que évidement ici hein c’est pas très très bien formatté. Il faut travailler tout ça proprement, c’est évident. Et si vous avez beaucoup beaucoup d’informations comme ça c’est parce que vous n’avez pas fait de trim. Alors ça, on pourrait effectivement l’utiliser un petit peu plus tard mais je vous le montre quand même parce que c’est important. On a ici un trim. Le trim, ça permet de supprimer les espaces grossiers qui se trouveraient autour. Et en fait, comme vous êtes ici dans une console, bah vous allez en avoir des espaces grossiers. Donc là on peut retester avec le trim. Effectivement ici, on va avoir de l'information. On peut mettre js comme ça. Et là on a bien toto, mecano, js, et cette information elle est trimée. Donc ça a supprimé les espaces devant et derrière . Bon, là vous avez un petit exemple, J’espère que ça va pas trop vite pour vous. Prenez le temps de re-regarder cet exemple, de le travailler un peu, puis pourquoi pas de l’adapter parce que là vous avez le début d’un petit robot. On pourrait s’amuser vraiment à faire beaucoup de choses, puisque là pour le coup vous commencez à voir des informations sur comment fonctionne ici un serveur node.js, ce qui est hyper intéressant. Et c’est ce qu’il faut retenir de cette vidéo. Ask donc fait un appel de fonction ici. Vous voyez que quand je fais un appel de fonction à cet endroit là ou à cet endroit là, eh bien node.js a un comportement très intéressant, puisque il s’attend à quelque chose. Il ne bloque pas le processus, c'est-à-dire qu’il ne détruit pas le processus. Non, non, au contraire il le continue et il s’attend à quelque chose. Alors on ne serait pas obligé d’utiliser ça : le stdon data, mais ça vous permet de vous câbler sur l’entrée d’information dans la console, et au moment où on appuie sur Entrée, c’est à ce moment là que l’événement data est soulevé. Vous voyez que c’est génial à utiliser et je pense que ça va vous donner pas mal d’idée. Allez on continue.

L'essentiel de Node.js

Exploitez les possibilités de Node.js et créez des applications côté serveur entièrement en JavaScript. Travaillez avec des requêtes web, gérez le protocole WebSocket, etc.

4h00 (44 vidéos)
Aucun commentaire n´est disponible actuellement
Logiciel :
Node.js Node.js 7.0
Spécial abonnés
Date de parution :26 déc. 2016

Votre formation est disponible en ligne avec option de téléchargement. Bonne nouvelle : vous ne devez pas choisir entre les deux. Dès que vous achetez une formation, vous disposez des deux options de consultation !

Le téléchargement vous permet de consulter la formation hors ligne et offre une interface plus conviviale. Si vous travaillez sur différents ordinateurs ou que vous ne voulez pas regarder la formation en une seule fois, connectez-vous sur cette page pour consulter en ligne les vidéos de la formation. Nous vous souhaitons un excellent apprentissage avec cette formation vidéo.

N'hésitez pas à nous contacter si vous avez des questions !