Le 14 septembre 2017, nous avons publié une version actualisée de notre Politique de confidentialité. En utilisant video2brain.com vous vous engagez à respecter ces documents mis à jour. Veuillez donc prendre quelques minutes pour les consulter.

L'essentiel de Node.js

Maîtriser les processus enfants

TESTEZ LINKEDIN LEARNING GRATUITEMENT ET SANS ENGAGEMENT

Tester maintenant Afficher tous les abonnements
Étant donné que Node.js tourne dans une console, il détient des droits pour jouer des commandes directement dans son code. Cette particularité vous sera très utile en scripting.
04:11

Transcription

Vous posez certainement une question. Je suis en train d’exécuter node en console ? Effectivement je tape une commande console. Est-ce que je ne peux pas utiliser ce node pour jouer également des commandes console ? Eh bien si, vous pouvez bien évidement ! Souvenez-vous au début, je vous ai dit qu’en faisant node-v vous obteniez une information. On va essayer d’utiliser ça dans un contexte node Je vais essayer de faire jouer à mon terminal, une commande, mais au travers de mon serveur node. C’est ce qu’on appelle des child proces, en fait, des processus enfants. En fait, vous allez pouvoir faire jouer n’importe quelle commande à votre serveur. Pour ça, il va d’abord falloir utiliser exec. Alors, on va mettre exec dans une variable et on va aller chercher, en fait, en faisant un require('child_process'). Donc ça c’est les processus enfant, et on va aller chercher l’exécutable exec qui se trouve dessus. Là on a mis exec de côté. Exec, qu'est-ce que ça permet au sein de node.js ? Ça lui permet de faire des exécutions, de tout et n’importe quoi ! Je pourrais vouloir lancer un autre serveur à partir de mon premier serveur. Ce qui serait une aberration totale, mais on pourrait tout à fait le faire. Par exemple, je pourrais lui dire : ok, exec la commande ls donc ls, ça permet de lister. Alors, si vous êtes sur un Windows, ce serait la commande dir par exemple. Et je peux lui demander du coup de me faire une sortie. Pour la sortie, ce sera derrière une fonction anonyme que l’on va devoir coder, et cette fonction anonyme, elle va prendre deux paramètres. La première c’est les erreurs s'il y en a, et la deuxième c’est un stdout, qui nous permet d’avoir de l’information et de faire jouer à notre script de l’information et de le voir aparaitre. Alors, je vous conseille, quand vous utiliser exec, puisque vous avez la possibilité d’utiliser les erreur, de les afficher. Donc si il y a une error, pensez bien à faire un throw. c’est à dire, donc à soulever une vraie exception et à sortir réellement du programme, parce que ça veut dire que du coup il n’arrive pas à jouer, faudrait pas que ça endommage la machine sur laquelle vous êtes. Et puis ensuite derrière, on va pouvoir faire un console.log avec juste un tout petit message pour dire par exemple : Listing finished et puis derrière, eh bien on va simplement effectivement refaire un petit console.log et à ce moment-là, on peut utiliser le stdout qui sera la sortie de l’exécution de notre commande. Retenez que exec permet d’exécuter et que du coup, on peut lui faire jouer des commandes. ça veut dire qu’on va pouvoir relancer notre server.js, et vous remarquez bien, qu’effectivement on a une sortie . Et alors attention, c’est pas un objet, ça c’est vraiment de la string pure, on lui fait jouer une commande, lui, il fait la sortie, exactement ce que vous donne directement la sortie de la commande. Or, si maintenant je vais lui demander la version node, je peux lui faire un node-v et je vais lui dire d’exécuter et effectivement vous allez voir qu'on récupère la version node. Ça c’est génial parce que ça veut dire que dans ce contexte-là, on a possibilité au sein du serveur de travailler sur deux, la commande qu’on va demander au serveur de lancer pour nous au travers d’exec, et on peut imaginer tout un tas de possibilités pour scripter des informations et pour faire jouer à notre serveur des scripts, et pourquoi pas, en plus de ça, utiliser après, le retour console pour faire autre chose. C’est absolument faisable et possible, c’est d’ailleurs très utilisé, de venir exécuter. Alors cela dit, faites très attention parce que vous êtes en train d’exécuter ici un processus enfant à l’intérieur de node. Ce qui veut dire que si ce processus ne se termine pas, votre serveur ne se termine pas, mais les processus ne sont pas séparés. Alors que quand vous êtes sur un système effectivement, le fait de venir jouer une commande comme ça, c’est un processus séparé de tout le reste, c’est un processus unique. Ici, ce n’est pas le cas. Le processus node-v qu’on a là, va être joué à l’intérieur du processus du serveur, et du coup, on va se retrouver forcément avec, eh bien un processus enfant sur laquelle on va avoir un petit peu de mal à travailler, surtout s'il faut à un moment ou à un autre arrêter ce processus.

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 !