This is an old revision of the document!


TP 1 - Introduction sur NodeJS

Installation de NodeJS / éditeur de texte

Éditeurs de texte

NodeJS

  • Naviguez vers http://www.nodejs.org
  • Téléchargez NodeJS version 8 LTS pour votre système d'exploitation (Windows/Linux/Mac)

Tutoriel NodeJS

Standard

Tous les programmes doivent commencer par :

"use strict";

En utilisant cette ligne, vous allez recevoir plus d'erreurs qui vous aident à débogage (debugging).

Types de données

  • Primitives
    • Number
    • String
    • Boolean
    • Symbol
    • Null
    • Undefined
  • Object

Affichage des données

La fonction console.log() imprime sur l'écran les données reçus comme paramètres. Plusieurs arguments peuvent être passés, le premier étant utilisé comme message principal et tous les autres étant utilisés comme valeurs de substitution.

console.log(5); //5
console.log("Hello World!");

Variables

Les variables sont utilisées pour stocker des données. JavaScript est un langage dynamiquement typé (tous les types de données peuvent être déclarés avec var; on n'a pas int, float, boolean…).

var x = 20;
var y = x + 5;
 
console.log (x);
console.log (y);

let permet de déclarer des variables dont la portée est limitée à celle du bloc dans lequel elles sont déclarées. Le mot-clé var permet de définir une variable globale ou locale à une fonction (sans distinction des blocs utilisés dans la fonction).

var i;
for(i = 0; i < 2; i++) {
   var a = 1;
   let b = 2;
   console.log(i + a + b);
}
 
/* Output:
3
4
*/
 
console.log(i); //2
console.log(a); //1
console.log(b); //ReferenceError: a is not defined

String

L'objet global String est un constructeur de chaînes de caractères. Les littéraux de chaînes de caractères peuvent avoir l'une des formes suivantes :

"text"
'text'

Enchaînement des Strings (concatenation)

L'opérateur + effectue une concaténation de chaîne dès que l'un de ses opérandes est une chaîne. Ensuite, l'autre opérande est converti en chaîne.

console.log("Hello " + "World!"); //Hello World!
console.log("It's " + 2018); //It's 2018

Nouveau Projet en Node.js

Toutes les commandes seront écrites dans Node.js command prompt!

On crée un directoire pour le projet (on peut aussi utiliser l'inetrface graphique).

mkdir folder_name #ex: mkdir Projet

On accède au répertoire qu'on vient de créer, en utilisant la commande cd (change directory) qui reçoit comme paramètre le chemin vers le directoire. Le chemin peut être:

  • absolu - contient le directoire racine et tous les autres sous-directoires dans lesquels un fichier ou un directoire est contenu (ex: C:\Users\student\Desktop\Projet)
  • relatif - commence à partir du directoire de travail donné (ex: Desktop\Projet)
cd path_to_folder #ex: cd Projet, cd Desktop/Projet

On doit créer un fichier package.json. L'utilitaire npm peut nous aider avec cela. On sera invité à fournir des informations sur notre projet. Si on n'est pas sûr de ce qu'il faut écrire, appuye simplement sur la touche Enter pour les valeurs par défaut.

npm init

Pour installer des bibliothèques, on utilise npm install. Le drapeau --save les ajoutera automatiquement à votre package.json (pour une installation globale, on utilise -g):

npm install lib_name --save

Pour exécuter le projet, on écrit la commande suivante (on doit être dans le même directoire que le fichier!):

node file_name.js

Si on utilisera des paramètres, ils seront écrits apres le nom du fichier.

node file_name.js param1 param2

Modules de NodeJS

Les modules de NodeJS sont les mêmes que les bibliothèques JavaScript: un ensemble de fonctions que vous souhaitez inclure dans votre application. Pour inclure un module, utilisez la fonction require() avec le nom du module:

var module_name = require('module_name');

Exemple:

var chalk = require('chalk');
console.log(chalk.blue('Hello world!'));

Écrire dans un fichier

Pour écrire dans un fichier, on utilise la méthode suivante:

var fs = require('fs');
 
try {
   fs.writeFileSync('file_path', text_to_write, 'utf8'); //UTF-8 est l'encodage du texte
} catch(err) {
   console.error(err);
}

Lire un fichier

Pour lire un fichier, on utilise la méthode suivante:

var fs = require('fs');
 
try {
   var data = fs.readFileSync(file_path).toString();
   console.log(data); //contenu du fichier (String)
} catch(err) {
   console.error(err);
}

Instructions conditionnelles

En JavaScript, nous avons les instructions conditionnelles suivantes:

  • if - pour spécifier un bloc de code à exécuter, si la condition est vraie
  • else - pour spécifier un bloc de code à exécuter, si la même condition est fausse
  • else if - pour spécifier une nouvelle condition à tester, si la première condition est fausse
  • switch - pour spécifier plusieurs blocs de code alternatives à exécuter

If

var x = 1;
 
if(x === 1) {
console.log(x); //l'instruction s'execute
}
 
if(x > 3) {
console.log(x + 3); //l'instruction ne s'execute pas
}

If Else

var x = 5;
 
if(x < 3) {
   console.log(x + 3);
}
else {
   console.log(x + 1); //seulement cette instruction s'execute
}

If Else if

var x = 2;
 
if(x < 3) {
   console.log(x + 3); //seulement cette instruction s'execute
}
else if (x > 4){
   console.log(x + 1);
}

Switch

var x = 2;
 
switch(x) {
   case 1:
      console.log(x + 1);
      break;
   case 2:
      console.log(x + 2); //seulement cette instruction s'execute
      break;
   case 3:
      console.log(x + 3);
      break;
   default:
      console.log(x); //instruction qui s'execute si x n'est pas egal a 1, 2 ou 3
   }

Boucles

Les boucles peuvent exécuter un bloc de code plusieurs fois.

For

La boucle for parcourt un bloc de code un certain nombre de fois.

var x = 10;
var sum = 0;
 
for(let i = 1; i <= x; i++) {
   sum += i;
}
 
console.log(sum); //55

While

La boucle while parcourt un bloc de code tant qu'une condition spécifiée est vraie.

var x = 1;
var sum = 0;
 
while(x <= 10) {
   sum += x;
   x++;
}
 
console.log(sum); //55

Oprateurs

Operateur Description Example
+ Plus x + y
- Moins x - y
* Multiplication x * y
/ Division x / y
% Reste de la division x % y
== Valeur d'égalité x == y
=== Égalité de la valeur et du type x === y
!= Valeur différente x != y
!== Différence de la valeur ou du type x !== y
< Moins grand x < y
Moins grand ou égal x ⇐ y
> Plus grand x > y
>= Plus grand ou égal x >= y
! Pas !x
&& Et x && y
|| Ou x || y
& AND x & y
| OR x | y
~ NOT x ~ y
^ XOR x ^ y
» Right Shift x » y
« Left Shift x « y

Excercices

  1. Installez Node JS 8 et un éditeur de texte (Sublime Text, Visual Studio Code, Atom, Brackets). (1p)
  2. Faites un nouveau projet en Node JS qui s'appelle showmyname.
    1. Faites un nouveau directoire showmyname. (0.3p)
    2. Créez un fichier main.js (0.3p)
    3. Entrez dans le directoire et utilisez la commande npm init. (0.4p)
  3. Ecrivez un programme qui affiche sur l'écran votre nom. (0.5p)
  4. Faites un nouveau projet qui s'appelle osinfo. Utilisez la bibliothèque os pour afficher (elle ne doit pas être installée):
    1. l'architecture du processeur (CPU Architecture, exemples: ARM, ia32, x32) (0.3p)
    2. le type du système d'exploitation (0.3p)
    3. la mémoire totale en MB (1B = 1024kB, 1kB = 1024MB) (0.4p)
  5. Déclarez une variable dans laquelle on retient la mémoire en kB, une pour la mémoire en MB (nombres entières), une pour le nom du système d'exploitation et une avec le nom du processeur. Après, ajoutez-les dans un string, avec des espaces entre eux. Affichez le string. (1p)
  6. Ecrivez dans le fichier system.info toutes les informations de l'exercice précédent. (0.5p)
  7. Installez la bibliothèque chalk, en utilisant npm. La bibliothèque doit être ajoutée automatiquement en package.json. (0.5p)
  8. Affichez toutes les variables de l'exercice 4, avec des différentes couleurs. (0.5p)
  9. Stockez dans une variabe le nombre de secondes écoulées depuis le temps de démarrage du système (uptime).
    1. Affichez sur l’écran : “The system is running for: ” et le nombre de secondes. (0.5p)
    2. Si le nombre est paire, affichez sur l'écran “The system has been running for an even number of seconds”. Si le nombre est impaire, affichez “The system has been running for an odd number of seconds”. (0.5p)
  10. Faites un projet qui s'appelle numbers. En utilisant for, affichez :
    1. toutes les nombres entres 1 - 10000 (0.4p)
    2. les mêmes nombres dans l'ordre inverse (0.4p)
    3. toutes les nombres divisibles avec 7 (0.4p)
    4. toutes les nombres divisibles avec 3 et 5 (0.4p)
    5. toutes les nombres divisibles avec 5 ou 7 (0.4p)
  11. Stockez un nombre dans une variable. Utilisez while pour compter ses diviseurs. Affichez sur l’écran :
    1. “The number … has … divisors” (0.5p)
    2. Si le nombre est premier. (0.5p)
  12. Bonus: Utilisez cowsay pour afficher les spécifications de l'exercice 5. (1p)

Solutions

alf/laboratoare/01.1520594953.txt.gz · Last modified: 2018/03/09 13:29 by claudia.dumitru1803
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0