L'essentiel de Node.js

Utiliser les arguments en ligne de commande

Testez gratuitement nos 1271 formations

pendant 10 jours !

Tester maintenant Afficher tous les abonnements
Étant donné que Node.js se lance en console, il peut prendre des arguments comme n'importe quelle commande du système. Ainsi, vous pourrez les lire.
07:17

Transcription

Alors il faut savoir que vous avez aussi la possibilité de travailler avec les arguments. Bah oui, parce qu’on est en ligne de commande. Effectivement si je tape node server.js, là je suis totalement en ligne de commande. Donc ça veut dire que concrètement, je dois pouvoir m’amuser avec les arguments en ligne de commande. Alors, comment ça fonctionne les arguments ? On va utiliser un utilitaire qui s’appelle process. Je vais faire un console.log, évidemment ça vous ne pouvez pas l’inventer, il faut vraiment le savoir parce que sinon on ne peut pas l’inventer, donc c’est sur global, évidemment. Et ici, on va aller chercher process. Et ensuite on va aller chercher argv. Ça, ça va nous permettre de récupérer les arguments. Alors, comme c’est sur global, ceux qui ont suivi, vous dites qu’effectivement je peux l’utiliser comme ça. Alors dans un premier temps, là, on va faire tourner le serveur, node server.js, et on va envoyer. Effectivement, on voit bien que déjà dans les arguments, il y a des choses intéressantes. Bon alors, il y a quoi d’intéressants ? Effectivement dans les arguments, ici, on a deux informations : c’est l’endroit où se trouve l’exécutable de node, et puis le fichier qui est exécuté actuellement. Bon ça, c’est un petit peu, on va dire, implicite, c'est-à-dire que c’est automatiquement géré. En fait vous pouvez le voir ici, c’est que là on a le premier argument, et là on a le deuxième argument. Alors comment je vais faire maintenant ? Imaginons qu’ici, je mette un argument name, directement comme ça. Et puis que je lui donne de l’information. Donc je vais l’appeler toto. Je vais envoyer. Et effectivement, regardez ici, on vient récupérer name toto. Alors on pourrait aussi se dire, bah tiens, je vais faire ça. Alors ça c’est compliqué parce que vous allez passer l’information comme ça, et puis pour la récupérer, ça ne va pas forcément être extrêmement évident. Il vaut mieux utiliser les arguments sous ce format-là, et c’est plutôt comme ça qu’on va l’utiliser généralement quand on va utiliser, eh bien le formatage, sous forme d’argument. Bon alors maintenant ça veut dire que concrètement, je dois pouvoir réutiliser cet argument. Alors là, attention parce que pour réutiliser un argument, il va falloir être un peu malin. Si j’ai envie effectivement d’utiliser un argument qui provient comme ça des args, donc argv là qu’on a sur le process, il va falloir évidemment que je vienne coder une petite fonction qui me permet de le récupérer. Alors on va faire ça, on va se coder ici une fonction qui va s’appeler collect, et qui va prendre une clé, ici, d'entrée, et ma clé ce sera mon argument. Alors on pourrait l’appeler arg ou clé ou comme on veut, pas de problème. On est en javascript, évidemment, donc on vient coder une fonction qui est, je vous rappelle, du javascript tout simplement. Donc ici dans collect, qu’est-ce que je vais faire ? Je vais récupérer la clé, mais je vais la récupérer sur quoi ? Eh bien il va falloir que je récupère la vraie clé. Et j’aimerai bien connaître, vu que c’est un vrai, on le voit ici, eh bien, ici je voudrais connaître d’abord l’index de celui-là, et puis si elle existe, bah je vais récupérer la valeur. Alors comment je vais faire ça ? Bah, je vais me coder ici une var, et je vais lui dire var key est égal, on l’a dit juste avant process.argv comme ça, et puis on peut tout à fait utiliser, pourquoi pas, l’indexOf. IndexOf, ça nous permet d’avoir l’index d’un paramètre de quelque chose. Donc l’index d’une clé, par exemple. Ce qui fait que du coup, derrière, on va pouvoir récupérer la valeur. On va retourner la valeur si ça existe. Alors comment je vais coder ? Ici, je vais coder un petit terner. Je vais lui dire : « tu me retournes la valeur si effectivement la clé n’est pas égale à -1 ». Donc si la clé n’est pas == -1, comme ça, alors tu vas me retourner dans ce cas là eh bien un process.argv, et puis ici la clé + 1. Pourquoi ? Parce que moi je veux la valeur. Donc c’est la clé de l’argument qu’on a là. C’est - - name, par exemple, + 1. Moi je veux la valeur derrière. Et puis sinon tu vas faire autre chose. Donc là si c'est pas == -1, on pourrait même carrément faire un triple égal qui est mieux, tu me retournes ici null et sinon tu me retournes bien la bonne valeur, voilà. Là, on s’est codé une petite fonction très simple qui permet de collecter une clé et de récupérer sa valeur. Maintenant on va le tester. On va faire un console.log ici, de collect, et on va lui passer - - name. Et on va simplement utiliser ça, et on va le tester. Alors effectivement quand je lui passe name toto, ça fonctionne. Par contre, si je lui passe plop comme ça, et que je mets toto, alors il va me dire null. Bah évidemment c’est vrai que c’est null parce qu’il ne trouve pas la clé name. Or ça c’est bien parce qu’une petite fonctionnalité toute bête comme ça, vous allez pouvoir ici l’utiliser et venir travailler des vrais arguments. Comme ça on pourrait avoir name. Et une var qui serait message, qui irait collecter ici le message. Et ça pourrait, pourquoi pas, être une espèce de chat tout bidon, qui fait derrière un console.log. Et je vais vous montrer une petite technique sympa. Ici on va utiliser, vous voyez les simple quotes. Donc en fait, ici ça va être comme les i mêmes et celles qui sont penchés, que vous trouverez normalement à droite de votre M sur le clavier. Et ça, ça va nous permettre de faire quelque chose de très sympa, parce qu’on va pouvoir utiliser ici le name directement dans une chaîne de caractère comme ça qui sera préformatée. Et le message juste derrière, comme ça, message. Et là, ce serait pas mal, parce que du coup on pourrait récupérer le name et le message. Alors on va l’essayer juste comme ça. Effectivement, on verra que si je mets un name toto et un message salut, on verra qu’effectivement toto dit « salut ». Alors, attention parce que vous voyez bien ici que j’ai mis un espace, et ça, ça va passer en troisième argument. Donc ça, c’est un peu dommage parce que du coup on va être un peu embêté. On pourrait se dire : « bon bah c'est pas grave », regardez, quand vous allez avoir besoin ici de mettre des espaces parce que c’est une phrase complexe, pensez bien à entourer avec des guillemets simples, sinon ça ne marchera pas. Alors vous pourriez bien sûr ici encore mettre un petit peu de logique, et puis venir dire que if name && message alors dans ce cas-là, on affiche console.log. Et sinon mais on vient afficher quoi ? On vient afficher directement autre chose, donc console.log comme ça pas de message, par exemple. Donc ce qui veut dire que si j’en oublie un des deux, par exemple si je ne mets pas le message, mais juste toto, je n’ai pas de message. Alors par contre si je mets les deux, j’ai un message. Donc on peut après s’amuser à formater proprement. Pensez que le return aussi permet de détruire la pile d’appel, c'est-à-dire qu’à la fin ça va s’arrêter. C'est-à-dire ici si je fais un return, je vais pas avoir le pas de message derrière, si jamais j’ai bien tout renseigné, ça va continuer comme ça. Par contre, effectivement, ça c’est très intéressant parce que si j’oublie le message, ça me fait directement pas de message. Alors ça peut être bien. Faites juste attention ici quand vous utilisez ce genre de technique, le return à l’intérieur ici est bien d’une conditionnelle. Il faudra faire attention à câbler derrière un appel en plus, mais il faut surtout faire bien attention à où on fait le return et où on ne le fait pas. Et puis surtout si vous êtes en sortie comme ça, pensez toujours à sortir le plus vite possible. Ça c’est extrêmement important, le return est important pour ça. Là vous avez un petit exemple très sympa. Vous voyez qu’on peut tout à fait et sans problème, utiliser des arguments, les récupérer à l’intérieur de notre serveur node, et donc pourquoi pas, commencer à scripter des informations, donc à créer des scripts qui vont tourner en node.js.

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 !