Introduction
Présentation des versions de node
Principe d'un serveur Web
Comparaison entre serveur
Rappels de Javascript
Atelier: Télécharger et installer NodeJS
Présentation de NodeJS
Gérer les versions de node (nvm vs n)
L'interet de javascript côté serveur
Tester des commandes avec REPL
La single-threaded event loop
L'API non bloquante
Le moteur V8 de Google
Atelier: Executer les premiers script avec REPL
NodeJS et Ecmascript
Historique d'Ecmascript
Présentation du mode strict
Support d'ecmascript dans NodeJS (node.green)
Gestionnaire de paquets
Présentation et description
npm: node package manager
Présentation de la bibliothèque de module
Inclure des modules dans un projet: require
Installation locale ou globale
Le fichier package.json
Gérer les dépendances (production et developpement) npm et npx
Ajouter des scripts
Créer et publier un module
Atelier: Tester npm
Les variables globales
La documentation de l’API de Node
La classes Process: les events, les fluxs, etc
Utiliser les sorties standards (stdin, stdout, stderr)
Les classes Global, Console (log, errors, trace), Buffer, Streams
Les variables __filenames et __dirnames
Capter et émettre des évènements
Les Timers
Manipuler les fichiers
Lecture et ecriture de fichier
Gérer les chemins et les urls
Création, suppression, renommer des fichiers et dossiers
Lister le contenu d'un fichier
Atelier: manipuler les fichiers
Callback et Promise
Présentation des callbacks (fonction de rappel)
Principe des Promises (les promesses)
Callbacks vs Promises
Implémentation des promises
Transformation d'une fonction de rappel en promesse
Les fonctions async/await
Atelier: Utiliser les promesses
Créer un serveur avec NodeJs
Le module "http"
Request et Response
Modifier les entêtes
Parser une url
Afficher un message sur le navigateur
Gérer les pages statiques
Ajouter un moteur de template
Récupérer les paramètres de requête et de formulaire
Atelier: Créer un serveur
Créer un serveur avec Express
Présentation de "Express"
Créer un projet Express
Les middlewares
Gérer les verbs http
Les modules Morgan, Helmet, etc
Crypter les données avec bcrypt
Atelier: Utiliser Express
Les bases de données
Se connecter à des bases de données SQL et NoSQL
Récupérer un connecteur de SGBD
Executer des requêtes et récupérer les resultats
Les ORM et ODM: sequelize et Mongoose
Atelier: Connecter une base de données
Tester et Debugger
Debbuger nos pages à l'aide de chrome
Utiliser l'inspecteur de code (--inspect)
Présentation de Mocha
Les assertions dans NodeJS: assert
Le module Chai
Les tests synchrones et asynchrones
Les hooks
Atelier: Lancer plusieurs test
Atelier: Mettre en place une API REST avec authentification