Node.js

Des bases solides pour développer des applications back-end en JavaScript

Description du cours

Node.js est un ensemble de technologies permettant d’exécuter du code JavaScript mais aussi de gérer son projet logiciel et ses dépendances avec d’autres librairies. Node.js s’est imposé comme une technologie majeure du développement JavaScript fullstack grâce à son approche pragmatique et performante. Une grande majorité des projets utilisant du JavaScript mettent en oeuvre Node.js que ce soit pour créer des sites web, développer des web services ou des API REST, ou comme socle de construction d’applications front-end ou back-end.

Ce cours permet aux participants d'acquérir les compétences suivantes

  • Comprendre l’architecture de Node.js
  • Installer, configurer et déployer des applications JavaScript s’exécutant sous Node.js
  • Développer des applications asynchrones non-bloquantes avec Node.js
  • Mettre en oeuvre les principaux modules built-in de Node.js: système de fichiers, serveurs réseau et http(s)
  • Développer des applications web dynamique et des API REST avec Node.js

Prix: 1890€ HT
Durée: 3 jours
Modalité: Inter en présentiel (demander une formation en intra-entreprise)

Prochaines dates :

PROGRAMME DE LA FORMATION

Module 1

Introduction à Node.js

  • Qu’est-ce que Node.js ?
  • Les outils: node et npm
  • Environnement de développement Node.js
  • Notions d’architecture Node.js: IO, asynchrone, non bloquant, concurrence, event-loop, scalability
  • Atelier: Installation de Node.js et d’un environnement de développement
  • Atelier: Démonstration de la event loop à travers un premier programme asynchrone / non-bloquant
  • Atelier: REPL
Module 2

Évènements

  • Architecture de Node.js basée sur les évènements
  • Event et EventEmitter
  • Synchrone vs Asynchrone
  • Gestion des évènements multiples ou unique
  • Gestion des erreurs
  • Atelier: Développement d’EventEmitter personnalisé
Module 3

Streams

  • Exemples de données streaming gérées par Node.js
  • Les différents types de Streams
  • Buffers internes
  • Pipelines
  • Atelier: Consommer une stream Readable (http, fs)
  • Atelier: Ecrire dans une stream Writable (fs)
  • Atelier: Exploiter une stream Duplex (net.Socket)
  • Atelier: Utiliser une stream Transform (zlib)
Module 4

Gestion d’erreurs

  • Les différents types d’erreurs
  • Gestion d’erreur dans les APIs synchrones
  • Gestion d’erreur dans les APIs asynchrones
  • Assertions
  • Logging via l’API Console
  • Debugger un programme Node.js
  • Atelier: Gestion d’erreur dans les APIs synchrones
  • Atelier: Gestion d’erreur dans les APIs asynchrones
  • Atelier: Débugger un programme Node.js dans son IDE ou dans Chrome
Module 5

Modularité

  • Object Global et scope inter-modules
  • Objects accessibles globalement
  • Modules, scopes et gestion des fichiers
  • Core modules
  • Module main
  • Algorithme de chargement des modules et cache de modules
  • NPM et modules tiers
  • Atelier: Utilisation de l’objet Global
  • Atelier: Objets accessibles globalement: process
  • Atelier: Usage de core modules: timer, OS, Util, Path, ...
  • Atelier: Création de module interne à l’application
  • Atelier: Création d’un projet Node.js via NPM et installation de modules populaires
Module 6

Clients/Serveurs TCP et UDP

  • Module Net pour création de serveurs et clients TCP
  • Module UDP/Datagram pour création serveurs et clients UDP/Datagram
  • Atelier: Création de clients / serveur TCP
  • Atelier: Création de clients / serveur UDP/Datagram
Module 7

Clients/Serveurs http, https et http/2

  • Modules http, https et http/2 pour la création de serveurs et clients http, https et http/2
  • Module url pour exploiter les requêtes http
  • Atelier: Création de serveurs et clients http, https et http/2 dans le cadre d’un site web
  • Atelier: Création de serveurs et clients http, https et http/2 dans le cadre d’un webservice RESTFul
Module 8

Interactions avec le système de fichiers

  • Le module fs et sa proximité avec POSIX
  • APIs synchrones vs APIs asynchrones
  • Atelier: Interactions avec le système de fichiers via APIs synchrones et asynchrones
Module 9

Développement de back-end web

  • Gestion des données avec bases de données Relationnelles (Mysql) ou NoSQL (Mongo, Redis)
  • Gestion du middleware (connect, expressjs)
  • Gestion de templates (ejs)
  • Atelier: Création d’un back web statique et dynamique avec express.js
  • Atelier: Création d’une API RESTFul avec express.js
Module 10

Déployer une application Node.js

  • NPM: les principales commandes
  • NPM: packager un module
  • Différents modes de déploiement d’un projet Node.js
  • Modules Forever et PM2
  • Atelier: Packager une librairie
  • Atelier: Dockerizer une application web Node.js

Formations suggérées

JavaScript les fondamentaux du langage (JSFOND)

2 jours

JavaScript développer des applications web (JSDEVWEB)

2 jours

ECMAScript (ECMASCRIPT)

2 jours

TypeScript (TYPESCRIPT)

2 jours

PWA - Progressive Web Applications (PWA)

2 jours

Vue.js (VUEJS)

3 jours

Angular (ANGULAR)

3 jours

RxJS programmation réactive (RXJS)

2 jours

Nous contacter

Paris

48 Rue Jacques Dulud

92200 Neuilly-sur-Seine

+33 1 41 38 52 00

Lille

74 rue des Arts

59800 Lille

+33 3 66 72 61 32

Strasbourg

Crystal Park, 1 Avenue de l'Europe

67300 Schiltigheim

+33 3 88 47 04 38

Luxembourg

2, rue Drosbach

L-3372 Leudelange, Luxembourg

+352 26 54 47 1

Bordeaux

c/o Mama Works, 51 quai Lawton

33300 Bordeaux

Nantes

Zero Newton, 3 Rue Albert Camus

44000 Nantes

+33 2 55 59 07 00