-
Notifications
You must be signed in to change notification settings - Fork 5
Labo 02
Mercredi 18 sptembre
Solution exercice 5 : https://github.com/jpcaissy/INF4375-2013A/blob/master/labo-02/exercice05.js
- Se familiariser avec Nodte.js et l'asynchronisme.
- Créer un serveur HTTP avec Node.js.
- Documentation de Node.js
- Table des matières - à mettre dans vos favoris !
- HTTP
- FileSystem, pour la lecture de fichiers entre autre
- Exemples de Jacques
Au moment où je rédige ce labo, je n'ai aucune information concernant les postes au laboratoire. Si node.js n'est pas installé sur les postes, essayez de l'installer avec l'installeur (.msi). Sinon nous nous limiterons au fichier binaire (.exe).
Vous pouvez suivre les instructions pour Windows et Mac OS X sur le Site du zéro.
Dans une console : sudo apt-get install nodejs
Node.js est disponible dans les répos unstable (sid). Pour l'installer, suivez les instructions ici : http://ypcs.fi/howto/2012/10/09/nodejs-debian/. Je serai disponible pour vous aider au laboratoire.
Le premier exercice consiste à se familiariser à node.js en codant directement dans la console (shell). Pour Windows il s'agit de Node.js
et non pas Node.js command prompt
Node.js est un framework javascript orienté serveur, à la différence du javascript dans les navigateurs.
- Ouvrez une console node.js. Sous Windows, exécuter l'application
Node.js
, sous Mac et GNU/Linux, en ligne de commande exécuternode
. - Utilisez
console.log
pour écrire du texte vers la sortie standard (stdout). - La console de node.js possède des fonctionalités d'autocomplétion! Dans la console tappez
console.
(avec le point) puis appuyer sur la touche tab du clavier. Vous verrez toutes les méthodes accessible à partir deconsole
. - Quelle est la différence entre les méthodes
console.log
etconsole.error
? - Avec l'autocomplétion, trouvez la méthode du module
os
qui permet d'obtenir l'information sur le processeur (CPU). - Encore avec le module
os
, calculer la quantité de mémoire (RAM) utilisé par le système d'exploitation et l'afficher à l'écran.
Pour installer des modules externes, il existe le programme npm
qui permet de gérer l'installation, la mise à jour et la suppression de modules pour vos projets. npm
est inclus dans Node.js.
Voici l'aide de npm :
12:43 ~
jp@jp-laptop$ npm -h
Usage: npm <command>
where <command> is one of:
add-user, adduser, apihelp, author, bin, bugs, c, cache,
completion, config, ddp, dedupe, deprecate, docs, edit,
explore, faq, find, find-dupes, get, help, help-search,
home, i, info, init, install, isntall, issues, la, link,
list, ll, ln, login, ls, outdated, owner, pack, prefix,
prune, publish, r, rb, rebuild, remove, restart, rm, root,
run-script, s, se, search, set, show, shrinkwrap, star,
stars, start, stop, submodule, tag, test, tst, un,
uninstall, unlink, unpublish, unstar, up, update, version,
view, whoami
npm <cmd> -h quick help on <cmd>
npm -l display full usage info
npm faq commonly asked questions
npm help <term> search for help on <term>
npm help npm involved overview
Specify configs in the ini-formatted file:
/home/jp/.npmrc
or on the command line via: npm <command> --key value
Config info can be viewed via: npm help config
Pour installer un module externe : npm install [nom du module]
ou npm install express
, etc...
Par défaut, npm va créer un dossier node_modules
à l'emplacement où vous êtes et y mettre les modules dans ce dossier.
Pour cet exercice et les exercices à suivre, vous pouvez écrire le code dans un fichier et l'exécuter directement à la ligne de commande avec node nom_du_fichier.js
. Pour les utilisateurs de Windows, vous pouvez obtenir la ligne de commande en exécutant le script Node.js command prompt
.
Cet exercice a pour objectif de vous familiariser avec l'asynchronisme de Node.js.
Voici un exemple de code Node.js :
var fs = require('fs');
/*
* Ne jamais utiliser les métohdes synchrones !
*/
fs.writeFileSync('fichier', 'Cette chaine est dans le fichier');
fs.readFile('fichier', function(err, data) {
if(err) {
throw err;
}
console.log('Callback de la lecture du fichier');
console.log(data.toString());
});
console.log('Fin du fichier javascript');
- Avant d'exécuter ce code, que va-t-il se passer selon vous ?
- Exécutez le code, et tentez de comprendre pourquoi la phrase
Fin du fichier javascript
n'est pas affiché en dernier. - Quelles modifications devrions-nous faire pour afficher la phrase
Fin du fichier javascript
à la fin de l'exécution du programme?
Le troisième exercice est fait pour vous familiariser avec l'API du module http
.
Pour cet exercice, vous pouvez vous fier à l'exemple de Jacques disponible à l'adrese suivante :
-
Avec le module
http
, créer un serveur web qui écoute sur le port 8080 et sur l'ip 127.0.01 (localhost). Lorsqu'une connexion est effectué sur le serveur, retournez un Hello World! et le code HTTP 200, ce qui signifie que la requête s'est déroulé avec succès et une simple ligne de texte. Ensuite utilisez un navigateur pour tester la page à l'adresse http://127.0.0.1:8080/.Il existe plusieurs code HTTP, mais les plus souvent utilisés sont : 404 (fichier/ressource non trouvé), 403 (accès interdit), 400 (mauvaise requête), 500 (erreur interne du serveur).
Pour ce dernier exercice, vous devez lire les données d'un fichier XML, et les afficher sur une page HTML. Vous pouvez utiliser le module xmldom
pour parser le fichier XML.
Voici le XML à lire : https://github.com/jpcaissy/INF4375-2013A/blob/master/labo-02/bieres.xml et voici un exemple de rendu que votre serveur HTTP devrait faire : https://github.com/jpcaissy/INF4375-2013A/blob/master/labo-02/bieres.html
Pour le module xmldom
, vous pouvez vous fier aux exmples de Jacques disponible ici : https://github.com/jacquesberger/exemplesINF4375/tree/master/Node.js/script-lecture-xml