Avez-vous une question? (216) 97 656 803 hajjriadh@gmail.com
NestJS

L'histoire du framework NestJS

Cette leçon retrace l'histoire de NestJS : l'arrivée de JavaScript côté serveur avec Node.js, le succès d'Express et ses limites sur les grands projets, puis la création de NestJS en 2017 par Kamil My...

0 chapitres 0 QCM Accès gratuit
L'histoire du framework NestJS

À propos de ce cours

Cette leçon retrace l'histoire de NestJS : l'arrivée de JavaScript côté serveur avec Node.js, le succès d'Express et ses limites sur les grands projets, puis la création de NestJS en 2017 par Kamil Myśliwiec, inspiré par l'architecture d'Angular. Elle présente l'évolution du framework, son écosystème de modules officiels et une activité de frise chronologique.

Objectifs de la leçon

  • Situer NestJS dans l'histoire de JavaScript côté serveur.
  • Comprendre le problème que NestJS a voulu résoudre.
  • Identifier l'influence d'Angular sur NestJS.
JavaScript sort du navigateur : Node.js

Pendant longtemps, JavaScript ne s'exécutait que dans le navigateur. En 2009, Ryan Dahl présente Node.js, qui permet d'exécuter JavaScript sur un serveur grâce au moteur V8 de Google Chrome. Son fonctionnement asynchrone, basé sur une boucle d'événements, lui permet de gérer un très grand nombre de connexions simultanées.

Pour la première fois, un développeur peut utiliser le même langage pour le front-end et le back-end.

Express : la liberté… et ses limites

En 2010 apparaît Express, un micro-framework minimaliste qui simplifie la création de serveurs HTTP avec Node.js. Il devient rapidement la référence.

const express = require('express');
const app = express();

app.get('/api/stagiaires', (req, res) => {
  res.json([{ id: 1, nom: 'Ben Ali' }]);
});

app.listen(3000);

Express laisse le développeur libre d'organiser son code comme il veut. C'est parfait pour un petit projet, mais sur une grande application avec plusieurs développeurs, chaque équipe invente sa propre structure : dossiers différents, conventions différentes, code difficile à maintenir et à tester.

2017 : naissance de NestJS

Frise chronologique Node.js Express Angular Fastify NestJS

Quelques repères dans l'histoire de JavaScript côté serveur.

En 2017, le développeur polonais Kamil Myśliwiec publie NestJS en open source. Son constat : l'écosystème Node.js dispose d'excellents outils, mais aucun ne résout vraiment le problème de l'architecture.

Il s'inspire alors d'Angular (réécrit en 2016), qui avait apporté au front-end une organisation solide :

  • des modules pour regrouper les fonctionnalités ;
  • des décorateurs (@Component, @Injectable…) pour décrire les classes ;
  • l'injection de dépendances pour relier les éléments entre eux ;
  • le langage TypeScript.

NestJS transpose ces idées côté serveur. Un développeur Angular retrouve donc immédiatement ses repères :

// Angular (front-end)               // NestJS (back-end)
@Component({ ... })                  @Controller('stagiaires')
export class ListeComponent {        export class StagiairesController {
  constructor(                         constructor(
    private service: StagiaireService    private service: StagiairesService
  ) {}                                 ) {}
}                                    }

NestJS ne remplace pas Express : il s'appuie dessus (ou sur Fastify) et ajoute une couche d'architecture au-dessus.

L'évolution du framework
  • Le framework sort une version majeure régulièrement ; il est développé en open source sur GitHub et figure parmi les frameworks Node.js les plus populaires.
  • Des modules officiels sont venus enrichir l'écosystème : @nestjs/typeorm, @nestjs/mongoose, @nestjs/jwt, @nestjs/passport, @nestjs/swagger, @nestjs/config, @nestjs/websockets, @nestjs/schedule…
  • La CLI Nest permet de créer un projet et de générer modules, contrôleurs et services en une commande.
  • NestJS est aussi utilisé pour les microservices, GraphQL et les applications temps réel.

Pour aller plus loin: la documentation officielle (docs.nestjs.com) et le dépôt GitHub nestjs/nest permettent de consulter la version actuelle et l'historique des versions.

Activités

Activité 1 Remettre dans l'ordre

Classez ces événements dans l'ordre chronologique et donnez l'année de chacun : sortie de NestJS ; création de Node.js ; apparition d'Express ; réécriture d'Angular (Angular 2).

Voir le corrigé
  1. Node.js : 2009
  2. Express : 2010
  3. Angular 2 : 2016
  4. NestJS : 2017

Activité 2 Le problème résolu par NestJS

En trois ou quatre lignes, expliquez pourquoi un chef de projet pourrait choisir NestJS plutôt qu'Express seul pour une application de gestion de formation développée par cinq développeurs.

Voir le corrigé

Avec Express seul, chaque développeur organise le code à sa façon. NestJS impose une architecture commune (modules, contrôleurs, services), utilise TypeScript pour détecter les erreurs tôt et facilite les tests grâce à l'injection de dépendances. Le projet est donc plus homogène, plus facile à maintenir et un nouveau développeur s'y retrouve rapidement.

Activité 3 Recherche documentaire

Sur github.com/nestjs/nest, relevez : le nombre d'étoiles du dépôt, la date de la dernière version publiée (onglet Releases) et la licence du projet.

Voir le corrigé

Les chiffres évoluent chaque jour. La licence est la licence MIT: NestJS est libre et gratuit, y compris pour un usage commercial.

À retenir

  • Node.js (2009) permet d'exécuter JavaScript côté serveur.
  • Express (2010) est simple et libre, mais sans architecture imposée.
  • NestJS (2017), créé par Kamil Myśliwiec, apporte une architecture inspirée d'Angular.
  • NestJS s'appuie sur Express ou Fastify, il ne les remplace pas.
  • NestJS est open source, sous licence MIT.