Présentation veille technologique : Node.js MOLLEREAU Valentine TISSERON Estelle ROUSSILLION Clément MAXENCE Duport
Sommaire Node.js Le micro-framework express Nos projets Conclusion
Node.js Rappel sur le JavaScript Présentation de Node.js Les évènements Les modules NPM Express.js
Rappel sur le JavaScript Langage interprété de scripts Client-side Majoritairement utilisé sur les pages WEB HTML Il permet de dynamiser le site Evènementiel Evolution du JavaScript
Rappel sur le JavaScript
Présentation de Node.js Serveur-side On crée notre propre serveur Très rapide bien qu’il soit monothread Orienté évènement (fonctions callback) Norme http
Présentation de Node.js
Les événements Server.on(‘close’,function(){…}) Le module EventEmitter Var EventEmitter = require(‘events’).EventEmitter; Var jeu = new EventEmitter(); Jeu.emit(‘gameover’,’Vous avez perdu’); Jeu.on(‘gameover’, function(){…});
Les modules La richesse de Node.js De nombreuses fonctionnalités Des fichiers.js qu’il faut importer Var maVariable= require(‘cheminRelatif’); Node_modules Exports.fonction = fonction;
NPM Permet d’installer de nouveaux modules Gère les dépendances Installation locale et globale Npm install nomModule (-g) Npm update (sans casser la compatibilité) Package.json
Le micro-framework express.js Les routes Les templates Les middlewares
Les routes statiques Gestion des routes Le type MIME Le chaînage Var express = require(‘express’); Var app = express(); App.get(‘/’,function(req, res){ Res.setHeader(‘Content-Type’, ‘text/plain’); Res.end(‘Bonjour’);});
Les routes dynamiques Une partie de la route est variable app.get('/conf/:confNum/detail', function(req, res) { res.setHeader('Content-Type', 'text/plain'); res.end('Conférence n°' + req.params.confNum); });
Les templates Res.write() ; Templates fournissent une structure à l'intérieur de laquelle on peut insérer un contenu variable EJS app.get('/conf/:confNum/detail', function(req, res) { res.render(‘confDetail.ejs', {conf: req.params.confNum}); }); Views/confDetail.ejs
Les middlewares Micro-fonctionnalités Interconnectés (err, req, res, next) Require() et activer le logger puis app.use(….)
SOCKET.IO Communication en temps réel sans recharger la page Basé sur les WebSockets qui permettent un échange bilatérale synchrone Gestion avec deux fichiers : le fichier serveur (.js) et le fichier client (.html) Le serveur veut envoyer une message : Le serveur émet : socket.emit(‘test’,’…’) le client écoute : socket.on(‘test’,function(){…}) même chose si le client veut envoyer un message
Nos projets La todo list Le tchat La bataille
La todo list Todolist Node_modules/ Body_parser/ Cookie-session/ Ejs/ Express/ Views/ todo.ejs App.js Package.json Todo.ejs
Le tchat et la bataille Chat/ app_chat.js index.html
Conclusion