Présentation de Node.JS
• Bref historique sur Node.JS
• Intérêt du JavaScript côté serveur
• Node.JS, NPM et modules
Installation de Node.JS
• Installation de Node.JS
• Installation de NPM
Concepts principaux de Node.JS et leur représentation dans le code
• Qu’est-ce que l’Event Loop (Boucle D’événement)?
• Que signifie Non-Blocking IO (IO Non Bloquant)?
• Difficultés de la programmation asynchrone (Callbacks,…)
• Création d’événements personnalisés avec la classe EventEmitter
Aides à la programmation asynchrone
• Les Promises
• La librairie Bluebird
L’API Node.JS
• Présentation de quelques modules importants
• Un outil puissant de gestion de flux: les streams
• Les variables globales : process, require, __dirname,…
• Interactions avec d’autres fichiers grâce à fs ou path
• Interactions avec l’environnement via les modules os ou child_process
Module NPM
• CommonJS et require
• NPM
• Anatomie d’un package NPM
• Création d’un module
• Architecture
Serveur Web avec Express
• Utilisation de l’API de base mise à disposition par Node.JS (net/http)
• Découverte d’Express (Framework Web)
• Création de routes personnalisées
• Gestion des erreurs
Middleware
• Définition du Middleware
• Utiliser et définir des middlewares dans Express
Task Runners
• Comprendre ce qu’est un task runner
• Utiliser l’outil Gulp
Templates et langages
• Comprendre ce qu’est un moteur de template
• Avoir une vision simple de la syntaxe Jade
• Apprendre de nouveaux langages
• Utiliser Gulp pour des travaux de compilations
Persistance des données – MongoDB
• Un mot sur le SQL – les ORM (Object-Document Mapper) Bookshelf et Sequelize
• MongoDB et le JavaScript
• Utiliser l’ODM (Object-Document Mapper) Mongoose
Authentification – Passport
• Aborder l’authentification en Node.JS grâce à la librairie Passport
• Être capable de se connecter à un serveur
Les WebSockets
• Introduction au concept
• Alternatives : Polling/Long Polling
• Utiliser le framework Socket.io côté serveur
• Un mot sur le client
Tests
• Tests unitaires avec Mocha et Chai