Outils pour utilisateurs

Outils du site


issue99:javascript

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
issue99:javascript [2015/08/13 21:42] – [4] fredphil91issue99:javascript [2015/08/15 14:58] (Version actuelle) andre_domenech
Ligne 9: Ligne 9:
 After that, I have a description of the app and what it should do, the description is taken from the man page of the command.** After that, I have a description of the app and what it should do, the description is taken from the man page of the command.**
  
-La dernière fois, nous avons couvert l'installation de node.js et nous avons implémenté un générateur de nombre aléatoire basique que nous avons utilisé pour générer des numéros du loto.+La dernière fois, nous avons couvert l'installation de node.js et nous avons implémenté un générateur basique de nombres aléatoires que nous avons utilisé pour générer des numéros du loto.
  
 Dans cette partie, je pensais que ce serait bien de voir comment les commandes Linux, comme « word count » (nombre de mots), ou « cat » (concaténer), peuvent être implémentées en Javascript en utilisant node.js. Dans cette partie, je vais couvrir la commande yes (oui) décrite par exemple sur https://en.wikipedia.org/wiki/Yes_(Unix). D'abord nous allons voir le code (à droite) et je vais vous expliquer les détails par la suite. Dans cette partie, je pensais que ce serait bien de voir comment les commandes Linux, comme « word count » (nombre de mots), ou « cat » (concaténer), peuvent être implémentées en Javascript en utilisant node.js. Dans cette partie, je vais couvrir la commande yes (oui) décrite par exemple sur https://en.wikipedia.org/wiki/Yes_(Unix). D'abord nous allons voir le code (à droite) et je vais vous expliquer les détails par la suite.
Ligne 25: Ligne 25:
 The most important part comes now; in the application, I subscribe to the signal SIGINT (which is usually triggered on all operating systems when the user presses CTRL+C keys) using the process.on(...) function. When the signal is sent, I clear the repetition setup of the functions writeDefaultText() and writeCustomText(). I know we have not set up the repetition of these yet, but it will come shortly. I set up the repetition of a method (either writeDefaultText() or writeCustomText()) using the setInterval(...) function. With the repeated execution of writeCustomText() or writeDefaultText() methods, I manage to repeat the same output many times.** The most important part comes now; in the application, I subscribe to the signal SIGINT (which is usually triggered on all operating systems when the user presses CTRL+C keys) using the process.on(...) function. When the signal is sent, I clear the repetition setup of the functions writeDefaultText() and writeCustomText(). I know we have not set up the repetition of these yet, but it will come shortly. I set up the repetition of a method (either writeDefaultText() or writeCustomText()) using the setInterval(...) function. With the repeated execution of writeCustomText() or writeDefaultText() methods, I manage to repeat the same output many times.**
  
-J'ai défini deux constantes, DEFAULT_TEXT et CUSTOM_TEXT. DEFAULT_TEXT est utilisée pour écrire le caractère y et un saut de ligne. CUSTOM_TEXT contiendra le texte que l'utilisateur veut répéter.+J'ai défini deux constantes, DEFAULT_TEXT et CUSTOM_TEXT. DEFAULT_TEXT est utilisée pour écrire le caractère y et un saut de ligne. CUSTOM_TEXT contiendra le texte que l'utilisateur veut répéter. 
  
 Ensuite, j'ai défini trois fonctions (printUsage, writeDefaultText, writeCustomText), leurs noms sont explicites, mais leur contenu pourrait nécessiter un peu d'attention. Dans node, utiliser l'objet process.sdtout signifie que nous pouvons accéder à n'importe quel flux sortant et pouvons écrire dedans. Par exemple, si vous souhaitez ajouter la sortie de la commande « yes » à un fichier en utilisant cette commande : ./yes.js >> fichierResultat.txt, alors cela devrait fonctionner sans aucun problème. Ensuite, j'ai défini trois fonctions (printUsage, writeDefaultText, writeCustomText), leurs noms sont explicites, mais leur contenu pourrait nécessiter un peu d'attention. Dans node, utiliser l'objet process.sdtout signifie que nous pouvons accéder à n'importe quel flux sortant et pouvons écrire dedans. Par exemple, si vous souhaitez ajouter la sortie de la commande « yes » à un fichier en utilisant cette commande : ./yes.js >> fichierResultat.txt, alors cela devrait fonctionner sans aucun problème.
Ligne 39: Ligne 39:
 //NOTE POUR LE SCRIBEUR : il faut enlever ci-dessous les balises nowiki (4 balises à enlever) si tu passes par l'édition de la page (si tu fais juste du copier/coller tu ne verras pas ces balises donc pas besoin de les enlever)// //NOTE POUR LE SCRIBEUR : il faut enlever ci-dessous les balises nowiki (4 balises à enlever) si tu passes par l'édition de la page (si tu fais juste du copier/coller tu ne verras pas ces balises donc pas besoin de les enlever)//
  
-Ensuite, je vérifie si le processus a été lancé avec ou sans paramètres. S'il a été démarré sans paramètres (process.argv.length == 2)<nowiki>**</nowiki>, cela signifie que je dois définir la méthode writeDefaultText () pour être répété jusqu'à ce que l'utilisateur envoie un signal SIGINT qui arrêtera l'application. La répétition est mise en place en utilisant le code suivant : setInterval(writeDefaultText, 2). La fonction setInterval() prend deux paramètres ; le premier est la méthode qui doit être exécutée et le second est l'intervalle de répétition de l'exécution de cette méthode (paramètre n°1). Le second paramètre doit être un nombre et il représente des millisecondes ; dans ce cas writeDefaultText() sera invoqué tous les deux millisecondes.+Ensuite, je vérifie si le processus a été lancé avec ou sans paramètres. S'il a été démarré sans paramètres (process.argv.length == 2)<nowiki>**</nowiki>, cela signifie que je dois définir la méthode writeDefaultText () pour être répété jusqu'à ce que l'utilisateur envoie un signal SIGINT qui arrêtera l'application. La répétition est mise en place en utilisant le code suivant : setInterval(writeDefaultText, 2). La fonction setInterval() prend deux paramètres ; le premier est la méthode qui doit être exécutée et le second est l'intervalle de répétition de l'exécution de cette méthode (paramètre n° 1). Le second paramètre doit être un nombre et il représente des millisecondes ; dans ce cas writeDefaultText() sera invoqué tous les deux millisecondes.
  
 Dans le cas où le programme a été lancé avec trois paramètres (process.argv.length == 3)<nowiki>**</nowiki>, cela signifie que l'utilisateur a passé un texte personnalisé qu'il/elle veut répéter, donc je règle la méthode writeCustomText() pour être exécutée tous les deux millisecondes, mais avant je fais une vérification supplémentaire pour voir si le texte fourni par l'utilisateur contient un saut de ligne à la fin ou non. Si ce n'est pas le cas, alors je vais ajouter le caractère de nouvelle ligne. Dans le cas où le programme a été lancé avec trois paramètres (process.argv.length == 3)<nowiki>**</nowiki>, cela signifie que l'utilisateur a passé un texte personnalisé qu'il/elle veut répéter, donc je règle la méthode writeCustomText() pour être exécutée tous les deux millisecondes, mais avant je fais une vérification supplémentaire pour voir si le texte fourni par l'utilisateur contient un saut de ligne à la fin ou non. Si ce n'est pas le cas, alors je vais ajouter le caractère de nouvelle ligne.
Ligne 61: Ligne 61:
 **<nowiki>**</nowiki> According to the node documentation (https://nodejs.org/api/process.html#process_process_argv) the first item in argv array is the word “node”, the second is the name of the JavaScript file which is executed.** **<nowiki>**</nowiki> According to the node documentation (https://nodejs.org/api/process.html#process_process_argv) the first item in argv array is the word “node”, the second is the name of the JavaScript file which is executed.**
  
 +//NOTE POUR LE SCRIBEUR : il faut enlever ci-dessous les 2 balises nowiki si tu passes par l'édition de la page (si tu fais juste du copier/coller tu ne verras pas ces balises donc pas besoin de les enlever)//
 +
 +<nowiki>**</nowiki> Selon la documentation de node (https://nodejs.org/api/process.html#process_process_argv) le premier élément du tableau argv est le mot « node », le second est le nom du fichier JavaScript qui est exécuté.
  
issue99/javascript.1439494946.txt.gz · Dernière modification : 2015/08/13 21:42 de fredphil91