Formation Node.JS
2430€ HT / personne |
4 jours (28 heures) |
Présentation
Nodejs est une plateforme logicielle libre et événementielle, basée sur le moteur V8 de Google Chrome, qui permet le développement d’application réseau en JavaScript tout en garantissant d’excellentes performances.
L’atout majeur de Node.js® réside dans la possibilité d’employer un unique langage de programmation, le JavaScript, à travers toutes les couches d’une architecture logicielle, facilitant ainsi la rationalisation de la base de code et la communication au sein de l’équipe technique.
L’outil est utilisé en production par un grand nombre d’entreprises technologiques (parmi elles LinkedIn, PayPal et Netflix).
Il est supporté par les principaux fournisseurs de cloud (AWS, Google App Engine, Microsoft Azure).
Comme tous nos programmes, notre formation porte sur la toute dernière version stable en date de cette plateforme, ainsi que la découverte des nouveautés de la version 20 de Node.js.
Objectifs
- Maîtriser les fonctionnalités principales de NodeJS
- Savoir utiliser NodeJS, NPM et son écosystème dans les dernières versions
- Savoir configurer un serveur de NodeJS
- Développer une application web avec NodeJS et ES2022
- Maîtriser la programmation événementielle & asynchrone
- Créer et gérer APIs avec NodeJS
- Sécuriser, industrialiser, tester & déployer son application
Public visé
Développeurs web
Pré-requis
Connaissance du langage JavaScript et connaissance d’un framework côté client seraient un plus ou connaissance d’un autre langage de programmation orienté objet (java, php, etc.)
Programme de notre formation Node.JS
Jour 1 – Introduction aux principes fondamentaux
Rappel de JavaScript
- L’histoire du langage
- Les principes fondamentaux du langage
- La boucle d’événement ou l’Event Loop
- Les moteurs JavaScript
- Focus sur le moteur V8 de Google
ES2022
- Initiation à ECMAScript
- Déclaration de variables et portée
- Littéraux objets
- Le format JSON
- Les classes
- Déstructuration
- Rest et Spread
- Template strings
- Les fonctions fléchées
- Les modules ES
- Compatibilité native Node
- Utiliser la dernière version de JavaScript grâce à Babel
Programmation asynchrone
- Les callbacks
- Les callbacks selon NodeJs
- Le problème du “callback hell”
- Utiliser async.js pour éviter le callback hell
- Les promesses
- Async control flow avec async / await
Introduction à NodeJs
- La genèse de NodeJs
- Exécuter du JavaScript côté serveur
- Installation du serveur Nodejs
- Un premier programme
- Exécuter un fichier
- Présentation globale de l’API de Node.Js
- Comparaison avec d’autres technologies
Présentation des principaux composants Node.JS
- Node CLI (outils en ligne de commande)
- Les différents environnements de développement (IDE)
- NPM – Le gestionnaire de paquets de node.js
- package.json
- Les Node Modules
- Outils : Development Tools et Frameworks
Les objets globaux
- Focus sur la documentation de l’API de Node
- L’objet global et différence avec window
- Utilisation des fonctions setTimeout, setInterval et setImmediate
- logging sur process.stdout avec console
- Accès au context du fichier avec __dirname et __filename
- Accès à la configuration hardware du server process et os
Jour 2 – Manipulation de l’API de Node
Gestion des modules Node
- Qu’est-ce qu’un module Node ?
- Les modules core
- Import de module avec require et import
- Configuration de module et initialisation de module
- Utilisations des modules utilitaires (util, path, queryString, url)
- Création de modules
Découverte de NPM
- Le gestionnaire de paquet
- L’outil en ligne de commande npm
- L’alternative yarn
- Recherche de module en ligne de commande
- Le site npmjs.com
- Recherche de module sur le site
- Installation local ou global
- Packaging de module
- Le fichier package.json
- Déclaration des dépendances
- Gestion des conflits de version
- Gestion de dépendances par environnement
Manipulation de fichier
- Présentation du module fs
- Lecture de fichier synchrone
- Lecture de fichier asynchrone
- Création de fichiers asynchrone
- Suppression de dossier asynchrone
Programmation événementielle
- Pourquoi la programmation événementielle
- Présentation du module events
- Utilisation de EventEmitter
- Exemple d’utilisation concret
Jour 3 – Développement d’application web
Accès aux réseaux depuis NodeJs
- Rappel de réseau
- Les modules core Node orienté réseaux
- Utilisation des module udp et net
- Utilisation des module http et http2
- Utilisation du module dns
- Zoom sur le protocol HTTP
Création d’un serveur web avec l’api Node.JS
- Qu’est-ce qu’un serveur HTTP ?
- Lancement d’un serveur web Node
- Gestion des requêtes/réponses HTTP
- Mise en place d’un gestionnaire de routes
- Traitement de requête de manière asynchrone
Création d’un serveur web avec Express
- Introduction à Express
- Comparaison avec Fastify et NestJS
- Lancement d’un serveur express
- Configuration d’une application Express avec les middlewares
- Utilisation du gestionnaire de routes d’Express
- Les moteurs de templating
- Création de template Pug et rendering d’une page HTML
- Traitement de formulaire HTML
Connexion à une base de données
- Les bases de données compatibles
- Introduction à MongoDB
- Utilisation du package mongoose : création de modèle et requêtage
- Lier une route à un modèle mongoose
- Restifier un modèle de données avec express-restify-mongoose
- Utilisation du package sequelize : création de modèle et requêtage
- Lier une route à un modèle sequelize
- Restifier un modèle de données avec finale-rest
Communication bidirectionnelle temps réel
- Introduction à Websocket
- Présentation de socket.io
- Gestion de la communication côté serveur
- Gestion de la communication côté client
Jour 4 – Industrialisation d’une application Node.JS
Builder votre projet
- Pourquoi builder un projet nodeJs ?
- Les outils de build
- Rédiger ses propres scripts
- Partir d’un projet boilerplate (style Yeoman)
Tester et déboguer
- Les modules Node core pour tester et déboguer (console, debugger, inspector, repl, assert)
- L’écosystème des packages npm orienté testing (unitaire et intégration)
- Modules d’assertion : assert et Chai
- Tester son module avec Mocha
L’écosystème des packages NPM
- Bien choisir un package npm: analyse de viabilité
- Les principaux frameworks de développement d’API
- Qui sont les développeurs de package npm ?
- Comment contribuer à un package npm ?
Sécurisation d’une application Node/Express
- Les modules core de sécurité (crypto, https, tls)
- Encryption de mot de passe avec bcrypt
- Le package helmet
- Authentification avec Passeport
Faciliter le développement d’application Node en équipe
- Versionner proprement votre code avec git
- Documentation du code avec docco
- Documentation d’une API à l’aide de Swagger
- Harmonisation d’une base de code à l’aide de ESLint
- Imposer le typage via Typescript ou Flow
Modules Optionnels (+ 1 jour)
Gestion de streams et buffer
- Qu’est-ce un stream ou flux ?
- Comparaison entre les usages de streams unix et nodejs
- Les types de streams : readable, writable, duplex et transform
- La classe Buffer
- Un exemple d’usage haut niveau
Déploiement d’application Node – Module complémentaire (+1 jour)
Pour aller plus loin
Formation Angular
Formation MEVN
Formation MEAN
Formation Redux et RxJS
Formation Nestjs
Formation D3.js
Langues et Lieux disponibles
Langues
- Français
- Anglais / English
Lieux
-
France entière
- Paris
- Lille
- Reims
- Lyon
- Toulouse
- Bordeaux
- Montpellier
- Nice
- Sophia Antipolis
- Marseille
- Aix-en-Provence
- Nantes
- Rennes
- Strasbourg
- Grenoble
- Dijon
- Tours
- Saint-Étienne
- Toulon
- Angers
-
Belgique
- Bruxelles
- Liège
-
Suisse
- Genève
- Zurich
- Lausanne
-
Luxembourg
Nos Formateurs Référents
Antonin
Mohamed
Il anime pour nous des formations sur Node.js, ainsi que sur React/Redux, Angular et Docker.
Témoignages
Les + : Formation bien complète, du rappel des bases de JavaScript à l’industrialisation d’une application Node.js
Les – : Par moment beaucoup d’apprentissage théorique qui se suivent, il faut encaisser. Peut être intégrer un peu plus de pratique du coup.
Afficher tous les témoignages
Les + : Formation bien complète, du rappel des bases de JavaScript à l’industrialisation d’une application Node.js
Les – : Par moment beaucoup d’apprentissage théorique qui se suivent, il faut encaisser. Peut être intégrer un peu plus de pratique du coup.
Les + : Le formateur est à l’écoute, explique en profondeur en donnant des exemples concrets, la documentation est bien rédigée,
Les – : —
Je souhaite suivre : nodeJS avec nest et typescript
En synthèse : Grand merci pour le formateur, cette formation ma permis de revoir ma perception pour javascript, et cela va m’aider à prendre en main mes futurs projets en nodeJS.
Je recommande la formation
Les + : Le formateur est éloquent et pertinent.
Les – : Le distanciel, mais ce n’était pas entre nos mains. Merci quand même au formateur d’avoir réalisé la formation une fois un minimum rétablit.
Je recommande la formation
Je recommande la formation
Les + : Allier théorie et pratique.
Les – : Peut-être bien insister auprès des entreprises si tous les potentiels participants ont bien le niveau requis ? ^^
Je souhaite suivre : React
En synthèse : Très bon formateur
À l’écoute, sait expliquer et aider lors des erreurs rencontrées pour trouver des solutions annexes aux problèmes
Les + : J’ai compris une partie des bases de nodejs grâce aux très bonnes explications du formateur
Les – : Le gros point faible, c’est qu’étant débutant sur nodejs, je n’ai malheureusement pas assez de base pour pouvoir bien suivre cette formation.
Je souhaite suivre : React
En synthèse : Malgré mon sérieux manque de base j’ai eu énormément de mal pour bien suivre la formation, mais ce qu’on a vu cette semaine sera très bénéfique pour le jour où je passerai dessus.
Je recommande la formation
Les + : Le formateur est à l’écoute et est réactif aux demandes
Les + : Le formateur sait donner des explications claires et maîtrise très bien son domaine !
En synthèse : Nous aurions dû mieux préparer cette formation, en interne.
Navigation Site Reviews
Noter la formation
2430€ HT / personne |
4 jours (28 heures) |