L'essentiel de Node.js

Récupérer les retours en console

Testez gratuitement nos 1324 formations

pendant 10 jours !

Tester maintenant Afficher tous les abonnements
En console, vous devrez parfois récupérer des informations fournies par l'utilisateur. L'utilitaire Readline vous permet de le faire très simplement.
07:21

Transcription

On va maintenant voir un outil formidable, c’est readline. En fait, vous allez voir qu’avec cet outil-là, on va pouvoir, eh bien poser des questions à l’utilisateur, récupérer ses réponses et puis continuer à avancer comme ça. Alors readline, vous le trouverez bien évidemment dans les modules puisqu'il est défini, c’est un module qui fait partie de node et qui nous permet notamment de travailler avec pas mal de choses. Donc on peut en fait travailler avec des questions et puis insérer un prompt et puis s’attendre à quelque chose, donc directement de l’utilisateur et pourquoi pas travailler avec ? Or vous vous souvenez tout à l’heure notre petit exemple ? On va prendre les mêmes questions et on va essayer de le faire cette fois-ci avec readline Alors, bien sûr il va falloir d’abord déclarer readline. Vous avez compris un petit peu le principe. On va faire un require directement d'un paquet. Ce paquet, bon bah, c’est readline tout simplement. Et une fois que vous aurez fait votre petit require comme ça, vous allez vous retrouver avec l’outil. Alors cet outil, il faut l’initialiser. Pour le coup on va créer une var rl comme ça et on va utiliser readline, et surtout on va faire un create comme ça, interface. Alors il faut créer une interface pour readline pour qu'il puisse fonctionner. Et à l'intérieur, qu'est-ce qu’on va lui donner ? Deux paramètres : le stdin et le stdout. On les trouve sur quoi ? Sur process, donc std on se souvient, in comme ça et puis process.stdout. Vous voyez qu'une fois qu’on commence à avoir les bons réflexes, bon bah c’est assez simple. Alors une fois que vous avez fait ça, on a préparé des questions, on va aussi se préparer un objet. On va se préparer un objet person, et puis à l’intérieur on va lui donner des propriétés. Alors il va avoir un name puisque pour le coup, on s’attend à avoir un nom pour cette person-là. Il va, pourquoi pas, ici avoir un hobby. Donc on pourrait ici avoir une variable hobby. Et puis il pourrait aussi, pourquoi pas, avoir un langage préféré, donc ici on pourrait mettre lg pour le langage. Après vous mettez ce que vous voulez. Il y a pas de souci, et maintenant on va commencer à travailler avec. La première chose à faire évidemment c’est de poser une question. Donc on va faire un rl.question, et à l’intérieur on va lui donner une question. Alors la question, nous, on l’a déjà puisque vous voyez ici, on avait déjà préparé les questions. Donc on pourrait partir sur la première question, tout simplement. La première question c’est assez intéressant pour nous, parce qu'on va pouvoir démarrer le programme. Donc on pourra avoir un start, en fait, qui démarre. Alors le plus intéressant aussi, ce serait, pourquoi pas, d’avoir une fonction qui prépare la question actuelle. Alors on pourrait ici faire une fonction getQuestion et qui se baserait, qui ferait carrément un return sur la question en cours. Alors ça ferait question comme ça et pourquoi pas, actualIndex. Alors actualIndex, on va pouvoir en plus de ça, le faire varier. Alors attention c’est question avec un « s » ici, et on va partir d’abord sur une variable actualIndex ici, qu’on va démarrer à 0, pour avoir la première question. Donc là, on va lui mettre, ok, getQuestion, et puis là comme ça, on récupère la première question. Alors quand on a fait ça, ensuite il faut câbler derrière, une fonction qui sera une fonction d’interaction, qui va récupérer la réponse, donc answer. Qu’est-ce qu’elle va faire cette fonction-là ? Elle peut faire tout un tas de choses en fait. Concrètement une fois que ça c’est codé, on peut commencer à travailler réellement avec l’information et puis on pourrait aller jusqu’à récupérer, pourquoi pas, la réponse de l’utilisateur et travailler avec et venir ajouter le nom de la personne. Donc on sait que la question ça va être : Quel est ton nom ? Donc on pourrait lui dire que person.name ce serait égal à la réponse et comme ça on récupère vraiment le nom de l’utilisateur. Donc ça c’est jouable, on peut faire ça comme ça. Et pourquoi pas derrière on pourrait faire un petit console.log pour voir qu'effectivement tout fonctionne et qu’on a bien le nom de l'utilisateur. Et pour ça, on pourrait lui formater une chaine de caractère. Alors vous vous souvenez, on peut utiliser, voilà, ces guillemets-là et on peut lui dire : « Votre nom est :» et puis pourquoi pas ici venir mettre le person.name. En faisant ça, vous allez voir que le programme va continuer puisque ça s’arrête pas : Comment t’appeles-tu ? Voilà : Julien. Votre nom est : Julien. Effectivement ça fonctionne très bien, et vous voyez que ça ne s’arrête pas. C'est-à-dire que ça ne sort pas, le processus ne s’arrête pas. Pour l’arrêter, il faudrait réellement qu’on vienne coder un arrêt en fait du processus. Et pour arrêter le processus, vous pouvez utiliser sur rl, la fonction close. Donc là je pourrais lui dire rl.close à la fin, comme ça j’arrête le processus et je tue la console. Si vous voulez tuer un processus, vous utilisez le raccourci CONTRÔLE-C. Ça permet de tuer un processus. Peu importe sur quel système vous serez, ça marchera. Donc là je vais lui mettre Julien, Entrée. Effectivement ça arrête le processus. Alors mon idée c’est pas de l’arrêter, évidemment c’est de continuer le processus de récupérer les informations. Donc ça veut dire que concrètement, après, j’ai envie d’avoir des informations en plus. Alors première chose à faire, bien entendu, ça va être de récupérer l'index qui va être donc plus un. On est obligé de faire ça. Donc on va faire un actualIndex ++ et normalement ici, on devrait bien à la suite, console.log de l’actualIndex, avoir un index qui arrive à 1. On va mettre n’importe quoi, ok. On passe à 1. donc maintenant qu’on a un index qui est changé, on va pouvoir relancer une autre question sans aucun problème. Comment on va relancer une autre question ? Simplement on va utiliser « rl. » et là on a encore une autre fonction qui est le setPrompt, qui nous permet de remplacer le prompt et de continuer à poser des questions avec le getQuestion ici, qui va fonctionner puisqu'on a augmenté l'index. Donc si je fais ça effectivement on pose la première question et puis... Alors là ça s’arrête évidemment parce qu'on a demandé un arrêt, donc il faut surtout pas faire ça. Il faut que vous continuiez à fonctionner et il faut que derrière, vous fassiez un prompt, comme ça. On fait un setPrompt pour lui donner une nouvelle question, et puis ensuite on fait un prompt pour afficher cette nouvelle question. Et là on va être bon, ça va fonctionner. On va avoir Julien en premier, puis ensuite : Que fais tu dans la vie ? Ok, ok, poum, ça s’arrête pas, il faudrait l’arrêter. Alors là vous voyez un petit peu l’idée du truc c'est-à-dire que on va pouvoir chaque fois venir travailler sur quelque chose, sur une nouvelle question qui va ajouter une nouvelle information à chaque fois. Est-ce que ça va bien nous mettre ici, si je récupère ça comme ça, la bonne information ? On pourrait essayer directement. Alors il faudrait quand même qu’on sache quand est ce que ça va s’arrêter. Et le quand est ce que ça va s’arrêter, bah il va bien falloir le récupérer quelque part évidemment. Si vous voulez pas vous embêter avec les évènements pour le moment, vous pouvez simplement ici venir afficher person en console.log, pour voir si effectivement, à chaque fois qu’on va remplir, ça va bien nous mettre une information en plus. Donc là, Julien, ça va mettre Julien, et j’ai pas de hobby. Et puis ensuite, si je fais toto, Bah là j’ai rien de plus. En fait si vous voulez travailler avec rl et en faisant quelque chose justement qui soit comme ça, très interactif, ça veut dire qu’il va falloir modifier le code en profondeur parce que les actualIndex qu’on a là, c’est pas les actualIndex qu’on a ici. Ça marche pas comme ça, c'est à dire que vous pouvez pas récupérer la propriété. Il faudrait créer une table de propriété, récupérer la propriété intéressante en fonction de l’index et à partir de là, vous pourriez remplir l’objet. Alors c’est un petit peu plus compliqué, ce que je vous propose c’est qu’on modifie le code pour faire fonctionner entièrement ce petit jeu de question-réponse. Là vous avez vu dans les grandes lignes le principe, maintenant on va aller un petit peu plus loin.

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 !