Logo Node.js

Formation Node.js

Node.js est un environnement d'exécution JavaScript open source qui permet de faire tourner du code JavaScript côté serveur, plutôt que dans un navigateur web. Cela signifie que vous pouvez utiliser Node.js pour créer des applications serveur en utilisant JavaScript. Node.js est basé sur le moteur JavaScript V8 de Google, qui est connu pour sa vitesse d'exécution. Il utilise également un modèle d'exécution asynchrone basé sur des événements, ce qui le rend particulièrement adapté aux applications réseau qui doivent gérer de nombreuses connexions simultanées. Node.js est souvent utilisé pour créer des applications web, des API REST et des services de backend pour les applications mobiles. Il est également utilisé pour créer des outils de ligne de commande et des scripts de serveur. Node.js est populaire pour sa simplicité et sa flexibilité, et il est souvent utilisé en conjonction avec d'autres technologies telles que Express.js (un framework web pour Node.js) et MongoDB (une base de données NoSQL). Si vous souhaitez développer des applications côté serveur en utilisant JavaScript, Node.js est un choix populaire et puissant.

Objectifs pédagogiques / Compétences visées

  • Maitriser les syntaxes et APIs récents de JavaScript
  • Comprendre l'intérêts des modules et des bibliothèques associées
  • Utiliser npm pour ajouter et mettre à jour des dépendances
  • Ecrire du code asynchrone proprement
  • Créer des programmes console avec Node.js
  • Développer côté serveur avec Node.js
  • Interagir avec une base MongoDB
  • Automatiser les tests

Pré-requis

  • Maitrise de l'algorithmique
  • Bases de JavaScript
  • Notions de développement web serveur

Public

  • Développeurs
  • Chefs de projets

Programme

Jour 1

Introduction

  • Historique de Node.js et JavaScript
  • Installations de Node.js et npm
  • Les IDEs JavaScript Visual Studio Code, WebStorm, EditorConfig

Une réintroduction à JavaScript

  • Closures et Scopes
  • Fonctions Constructeurs et Prototype
  • ES5.1, ES6, ES7, ES8, ES.Next

Jour 2

Les modules JavaScript

  • Immediately Invoked Function Express (IIFE)
  • Modules CommonJS (require, exports, module)
  • Modules ES6 (import, export)

npm

  • Créer un projet avec npm
  • Installer de nouvelles dépendances
  • Mettre à jour des dépendances
  • L’importance des lockfiles et des scripts
  • Les autres gestionnaires de dépendances : yarn, pnpm

Ecrire du JavaScript Asynchrone

  • Callbacks asynchrones et boucle d’événement
  • Callback Hell et la bibliothèque Async
  • API Promise et la bibliothèque bluebird
  • Fonctions asynchrones et async / await
  • API Observable et la bibliothèque RxJS

Node.js et les programmes en ligne de commande

  • Les APIs pour les programmes CLI : process, fs, readline
  • Bibliothèques pour le CLI : chalk, minimist, yargs, commander, inquirer
  • Bibliothèques pour manipuler des fichiers : fs-extra, mkdirp, glob, rimraf

Jour 3

Automatiser un build du code front-end

  • Les programmes en ligne de commandes : rimraf, browserify, less, node-sass
  • Enchainer des tâches : scripts npm, grunt, gulp
  • Utiliser une bibliothèque dédiée : webpack

Node.js pour le JavaScript côté serveur

  • Les APIs bas niveaux : events, stream, net
  • Les modules http, https et http2 de Node
  • Le micro-framework Express
  • Quels Middlewares utiliser : body-parser, morgan, cors...
  • Les autres frameworks : koa, sails, loopback, Nest
  • Applications temps-réel avec Socket.io

Jour 4

Accès aux données

  • Les bases NoSQL
  • Utilisation basique de MongoDB
  • Simplifier l’accès avec Mongoose

Tests automatisés

  • Pyramide des tests : unitaires, intégrations, fonctionnels, End-to-End (E2E)
  • Test Driven Developeent (TDD) avec assert
  • Behavior Driven Development (BDD) avec Jasmine
  • Implémentation avec mocha, chai
  • Couverture de code avec Istanbul
  • Sinon.js : mocks, spy et stub
  • Parallélisation avec Jest, AVA
  • Tests fonctionnels avec chai-http ou supertest
  • Tests E2E : selenium, webdriver.io, nightwatch, cucumber

Moyens pédagogiques et techniques

  • Formateur validé par nos équipes techniques et pédagogiques
  • Salle de formation informatisée
  • Support de cours numérique

Suivi et appréciation des résultats

  • Questions orales ou écrites (QCM)
  • Exercices pratiques
  • Formulaires d'évaluation
Dernière modification le 13/01/2023