Article original : Comprehensive NestJS Course
NestJS est un framework Node.js progressif pour construire des applications côté serveur efficaces, fiables et évolutives en utilisant TypeScript et JavaScript.
Apprendre NestJS peut considérablement améliorer votre capacité à créer des applications backend structurées, maintenables et testables, offrant une boîte à outils robuste qui s'intègre parfaitement avec d'autres technologies et méthodologies modernes.
Nous venons de publier un cours complet sur NestJS sur la chaîne YouTube de freeCodeCamp.org. Ce cours, créé par l'expérimenté Haider Malik, vous aidera à maîtriser la création d'API backend robustes pour des applications réelles.
Dans ce cours, Haider Malik, un développeur web expérimenté et défenseur de l'open-source, vous guidera à travers le processus de développement d'un backend de clone de Spotify. Partant de la conception de la base de données jusqu'au développement et au déploiement de l'API REST, ce cours est structuré pour fournir une compréhension approfondie de l'architecture backend en utilisant un mélange de NestJS, Node.js, PostgreSQL et MongoDB.
Le cours contient plusieurs modules, chacun conçu pour aborder différents aspects du développement backend avec NestJS. De la compréhension des bases de NestJS, à la création d'API REST, en passant par la gestion des middlewares et des filtres d'exception, jusqu'à la mise en œuvre de l'authentification et de l'autorisation, le cours est une plongée profonde dans le développement backend.
D'autres modules couvrent des sujets avancés comme la connexion avec des bases de données en utilisant TypeORM, la mise en œuvre de relations dans les bases de données, et la sécurisation des API avec l'authentification JWT. Les apprenants auront également une expérience pratique avec les migrations, le seeding, le débogage, et même le déploiement d'applications NestJS sur des services cloud.
Le cours ne s'arrête pas aux API REST ; il introduit également GraphQL, montrant comment construire et authentifier des API GraphQL. Des concepts avancés comme l'intégration de WebSocket, la gestion de fichiers, les décorateurs personnalisés, et même les abonnements en temps réel avec GraphQL sont couverts, garantissant que les apprenants sont bien versés dans les dernières pratiques de développement backend.
Voici le plan complet du cours.
Module 0
- Qu'est-ce que NestJS
- Créer un projet NestJS
- Structure du répertoire NestJS
Module 1
- Créer un contrôleur
- Créer un service
- Créer un module
Module 2
- Middleware
- Filtre d'exception
- Transformer les paramètres en utilisant ParseIntPipe
- Valider le corps de la requête en utilisant class-validator
Module 3
- Fournisseurs personnalisés
- Portées d'injection
- Relation One To Many
Module 4
- Établir une connexion à la base de données
- Créer une entité
- Créer et récupérer des enregistrements depuis la base de données
- Pagination
Module 5
- One to One
- Relation Many to Many
Module 6
- Inscription de l'utilisateur
- Connexion de l'utilisateur
- Authentifier l'utilisateur avec Passport JWT
- Authentification basée sur les rôles
- Authentification à deux facteurs
- Authentification par clé API
Module 7
- Déboguer une application NestJS
- Migrations
- Seeding
Module 8
- Configuration personnalisée
- Valider les variables d'environnement
- Rechargement à chaud des modules
Module 9
- Configuration de Swagger
- Documenter la route d'inscription
- Créer un schéma en utilisant ApiProperty
- Tester l'authentification JWT
Module 10
- Installer MongoDB en utilisant Docker Compose
- Se connecter à MongoDB
- Créer un schéma
- Sauvegarder un enregistrement dans une collection Mongo
- Trouver et supprimer
- Peupler
Module 11
- Configurer les environnements de développement et de production
- Pousser le code source vers le dépôt GitHub
- Déployer le projet NestJS sur Railway
- Installer Dotenv pour travailler avec les migrations TypeORM
- Correction des bugs d'environnement
Module 12
- Prise en main de Jest
- Mocking automatique
- Fonction SpyOn
- Test unitaire du contrôleur
- Test unitaire du service
- Test E2E
Module 13
- Compilateur Web rapide avec NestJS v10
- Créer un serveur WebSocket
- Envoyer un message depuis une application frontend
Module 14
- Configuration du serveur GraphQL
- Définir les requêtes et les mutations
- Résoudre les requêtes
- Résoudre les mutations
- Gestion des erreurs
Module 15
- Définir le schéma pour l'authentification
- Résoudre les requêtes et mutations d'authentification
- Appliquer l'authentification en utilisant Auth Guard
Module 16
- Mettre en œuvre un abonnement en temps réel
Module 17
- Test unitaire du resolver
- Test de bout en bout des API GraphQL
Module 18
- Mise en cache côté serveur avec Apollo
- Optimiser les performances des requêtes en utilisant Data Loader
- Récupération de données depuis une API REST externe
Module 19
- Configuration de Prisma
- Modèles et migrations
- Générer le client Prisma
- Créer, trouver et trouver un
- Mettre à jour et supprimer une opération
- Relation One to Many
- Relation One to One
- Relation Many to Many
- Opérations en masse ou par lots
- Mettre en œuvre une transaction en utilisant des requêtes imbriquées
- Transactions interactives
Module 20
- Téléchargement de fichiers
- Décorateur personnalisé
- Planification de tâches CRON avec Nest.js
- Cookies
- Files d'attente
- Émetteur d'événements
- Streaming
- Session
Chaque leçon est conçue pour être hautement pratique, garantissant que les apprenants non seulement comprennent les aspects théoriques, mais aussi mettent en œuvre ce qu'ils ont appris dans des scénarios réels. Cette approche pratique, combinée avec les conseils experts de Haider, assure qu'à la fin du cours, les participants seront confiants dans la construction et le déploiement de systèmes backend robustes.
Regardez le cours complet sur la chaîne YouTube de freeCodeCamp.org (14 heures de visionnage).