Formation MERN Stack : MongoDB, Express.js, React et Node.js

icon public

Public : Développeurs Javascript

icon horloge

Durée : 10 jour(s)

Syllabus de la formation MERN Stack : MongoDB, Express.js, React et Node.js

Pré-requis : Bonnes connaissances de Node.js

Objectifs : Construire une application web fullstack avec la MERN Stack : MongoDB, Express.js, React et Node.js

Sanction : Attestation de fin de formation mentionnant le résultat des acquis

Référence : SIT102244-F

Accessibilité : Si vous êtes en situation de handicap, nous sommes en mesure de vous accueillir, n'hésitez pas à nous contacter à referenthandicap@dawan.fr, nous étudierons ensemble vos besoins

Contact : commercial@dawan.fr

À partir de

975,00 € HT / jour

Tarif pour une personne à distance sans frais
+ 75,00 € HT par participant supplémentaire
+ frais en cas de formation présentielle

4 380,00 € HT

1 000,00 € HT

Pour 20 tickets de 30mn (10 heures) utilisables pendant 12 mois

5 475,00 € HT

Tarif plein :

  • Paiement à 60 jours
  • Report possible à J-3
  • 3 tickets d'assistance

4 380,00 € HT

Tarif remisé :

Contacter Dawan

Programme de Formation MERN Stack : MongoDB, Express.js, React et Node.js

Introduction

Panorama des librairies disponibles
Rappels HTML5 et JavaScript
React.js : présentation, historique des versions
Installer l'environnement de développement (NodeJS/npm/yarn)
Présentation de la commande create-react-app

Atelier : Créer et démarrer un projet ReactJS

Découvrir ECMAScript

Spécification ECMAScript et implémentations
La Syntaxe Objet :
Evolution de la programmation orientée prototype
Syntaxe de classes : membres d'instances et membres de classe
Agrégation d'objets (mixins)
Héritage
Les fonctions fléchées
Design patterns
Définition de modules
Système natif de gestion des modules, chargement
Gestion des dépendances

Créer un projet React

Organisation d'un projet React
Architecture du projet
Personnaliser la configuration du projet
Comprendre le rendu d'un projet
Le Mode Strict

Concevoir des Composants

Définir un composant
Les composants fonction et classe
Utiliser les propriétés
Etats des composants
Le style (CSS/SASS) et les assets
Gestion des évènements
Relation entre composants
Utiliser la composition

Atelier : Créer plusieurs composants

Mettre en forme du contenu avec JSX

Présentation de JSX
Les éléments React avec et sans JSX
Le DOM virtuel
Les expressions et les attributs
Se protéger des attaques par injection (XSS)
Les conditions et les boucles
Les fragments

Atelier : Afficher, boucler et conditionner des jeux de données

Comprendre le cycle de vie d’un composant

Comprendre les cycles
Monter un composant
Ajouter des méthodes à un composant et des propriétés par défaut
Fixer des types de propriété

Atelier : Charger des données depuis une API

Utiliser le cycle de vie dans un composant fonctionnel: Les Hooks

Présentation des Hooks
Liste des hooks disponibles
Les hooks d'états et d'effet
Les bonnes pratiques et pièges à éviter
Les hooks personnalisés

Atelier : Créer et manipuler une todolist

Naviguer dans un projet React

Mise en place du Routing (React-router)
Rendu d’une route
Liens via les Router
Organiser les routes
Passage de paramètres liens, redirections

Atelier : Mettre en place la navigation

Communiquer depuis une application: Les Formulaires

Rappel des comportements en HTML et JavaScript
Les formulaires avec React
Les composants contrôlés et non contrôlés
Récupérer et mettre à jour des données
Valider et filtrer les données
Présentation des frameworks disponibles (React Hook Form, Formik)

Atelier : Créer un formulaire d'inscription

Utiliser Redux dans un projet

Présentation de redux
Les avantages apportés par les Store
Créer et configurer un Store
Les Actions et Les Reducers
Utiliser les Action Creators
La fonction connect()
Les Hooks Redux (useStore, useSelector, useDispatch)

Atelier : Mettre en place une authentification

Comprendre l'architecture

Architecture en couches : du monolythe au microservices
Contraintes d'architecture des microservices
Gestion de l'authentification centralisée dans une architecture microservices
Intérêt d'une passerelle d'API
Gestion centralisée des traces

Développement d'API REST avec Express.js

Express.js : principe, fonctionnalités, pré-requis
Configuration du projet : packages et modules additionnels : Morgan, Helmet, Cors,... 
Configuration de morgan pour la gestion des logs de requêtes HTTP
Organisation des couches du projet : routes, services, repositories
Intérêt d'une couche DTO, utilisation d'un mapper d'objets : automapper ou autre
Implémentation de contrôleurs REST : gestion des routes, traitement asynchrone
Gestion des paramètres de méthodes et du mapping
Gestion du download
Gestion de l'upload, configuration
Gestion des services et des transactions associées
Gestion du cross origin avec Cors et restriction des domaines appelants
Test de l'api REST avec Postman
Ecriture de tâches asynchrones, planification
Cache web

Atelier : Écriture de micro-services avec Express.js - Test des méthodes de services avec Postman ou autre

Documenter une API REST

Open API Specification (Swagger) : présentation, outil
Utilisation de express-openapi
Visualisation avec Swagger Editor
Documentation du code Java, génération de javadoc

Atelier : Documentation de l'api

Intercepter des requêtes et gérer les erreurs

Gestion globale des exceptions
Capture d'exceptions personnalisées
Intercepteurs de requêtes/réponses

Atelier : Gestion des exceptions et implémentation d'intercepteurs

Appeler d'autres API REST (écriture de clients)

http_request : méthodes et paramètres
Ecriture de requêtes GET, POST, PUT, DELETE
Gestion des paramètres et du corps de la requête
Gestion des headers
Gestion des réponses et utilisation de mappers

Atelier : Implémentation de clients pour un service REST

Sécuriser l'API REST

Configuration de Helmet
Gestion des données d’entête
Gestion des utilisateurs et des rôles : mise en place de JWT (passport-jwt)
Hachage des mots de passe avec bcryptjs

Atelier : Intégration de Helmet, jsonwebtoken, dotenv et bcryptjs

Tester une application Express.js avec Jest et SuperTest

Stratégies de tests, types supportés
Installation de jest, supertest et cross-env, configuration de l'application
Mocking des couches de l'application
Tests auto-configurés
Exécution et reporting

Atelier : implémentation et exécution de tests avec Jest et supertest
 

Configurer un projet Mongoose

Mongoose : Présentation, fonctionnalités
MongoDB : Installation, structure d'un schéma (collections, documents)
Configuration d'un projet Node.js utilisant Mongoose : pool de connexion, contraintes 
Propriétés par défaut et paramétrage
Gestion des options de logging

Atelier : Intégration de Mongoose dans un projet Node.js, configuration de la Bdd NoSQL MongoDB et des traces

Construire un modèle et écrire des requêtes

Modèle de base 
Documents et sous-dodcuments
Gestion des types
Requêter des documents
Mise à jour et suppression de documents
Gestion des validations
Mongoose migrations (ts-migrate-mongoose)

Atelier : Réalisation d'un schéma global de BDD MongoDB, gestion des migrations et écriture de requêtes

Maîtriser des concepts avancées

Cache : fonctionnement, mise en cache de requêtes (mongoose-cache)
Hooks
Mise en place d'une solution d'audit de tables (historique de modifications)

Atelier : Implémentation d'une couche complète de persistance - mise en place d'un cache

Délai d'accès :Le délai d’accès à la formation certifiante est de 7 jours après validation du dossier. Dans le cas d’un financement via votre CPF, la validation de votre dossier devra être réalisée 11 jours ouvrés avant le début de formation

Modalités d’évaluation : Les évaluation en cours de formations sont réalisées par les ateliers de mise en pratique et les échanges avec les formateurs

Construction d'une application web fullstack avec la MERN Stack : MongoDB, Express.js, React et Node.js

  • Un support et les exercices du cours pour chaque stagiaire
  • Un formateur expert ayant suivi une formation à la pédagogie et ayant au minimum 3 année d'expériences dans le domaine visé
  • Boissons offertes pendant les pauses en inter-entreprises
  • Salles lumineuses et locaux facilement accessibles
  • Méthodologie basée sur l'Active Learning : 75% de pratique minimum
  • Matériel pour les formations présentielles informatiques : un PC par participant
  • Positionnement à l'entrée et à la sortie de la formation
  • Certification CPF quand formation éligible
  • Délai d’accès : D'une à trois semaines en fonction des sessions ouvertes

Suite de parcours et formations associées

Pour suivre une session à distance depuis l'un de nos centres, contactez-nous.

Aucune date de programmée actuellement. Pour plus d'information sur les prochaines sessions, nous vous invitons à joindre le service commercial par téléphone au 09 72 37 73 73 (prix d'un appel local) ou depuis notre formulaire de contact.

Nos centres de formation

  • Bordeaux

    Nos locaux sont accessibles

    Bât Ravezies - 2e étage 250 avenue Emile Counord

    33300 Bordeaux

    Liaison directe de la gare Bordeaux Saint-Jean via le tram C

  • Bruxelles

    Rue de la Loi, 23

    1040 Bruxelles

  • Distance

    32 Boulevard Vincent Gâche

    44000 Nantes

  • Genève

    c/o CCI France Suisse Route de Jussy 35 Case postale 6298

    CH-1211 Thônex - Genève

  • Lille

    Nos locaux sont accessibles

    46 rue des Canonniers - 2è étage

    59800 Lille

    Proche des deux gares

  • Luxembourg

    5 Rue Goethe

    L-1637 Luxembourg

  • Lyon

    Nos locaux sont accessibles

    62 rue de Bonnel - 1er étage Ascenseur à droite de l'entrée

    69003 Lyon

  • Marseille

    Nos locaux sont accessibles

    38/40 rue de la République Escalier A, 1er étage

    13001 Marseille

    A proximité du vieux port

  • Montpellier

    Nos locaux sont accessibles

    26 Allée de Mycènes Le Thèbes, Bât. A, 3è étage

    34000 Montpellier

    Quartier Antigone

  • Nantes

    Nos locaux sont accessibles

    32 Boulevard Vincent Gâche 5 ème étage

    44200 Nantes

  • Nice

    Nos locaux sont accessibles

    455 promenade des Anglais Bât Arenice, 7è étage

    06200 Nice

  • Paris

    Nos locaux sont accessibles

    11 rue Antoine Bourdelle

    75015 Paris

    dans le 15e arrondissement

  • Rennes

    Nos locaux sont accessibles

    3 place du Général Giraud

    35000 Rennes

  • Strasbourg

    Nos locaux sont accessibles

    4 rue de Sarrelouis - 4è étage

    67000 Strasbourg

  • Toulouse

    Nos locaux sont accessibles

    1 place Occitane Bât. Le Sully - 4è étage

    31000 Toulouse

    Proche de Jean-Jaurès et du Capitole