Nouveau : Datasets open source gratuits disponibles !Decouvrir →
🟢
frameworks 20 entrees

NestJS Cheatsheet

Découvrez la NestJS Cheatsheet : votre guide pratique pour développer des applications Node.js efficaces.

## Bases & syntaxe
### Créer un nouveau projet NestJS
```bash
nest new project-name

Créé un nouveau projet NestJS.

Définir un contrôleur

@Controller('users')
export class UsersController {
  @Get()
  findAll() {
    return 'This action returns all users';
  }
}

Définit un contrôleur avec une route GET pour récupérer tous les utilisateurs.

Structures de données

Utiliser l'interface pour définir une structure de données

export interface User {
  id: number;
  name: string;
  email: string;
}

Déclare une interface User pour structurer les données des utilisateurs.

Utiliser le DTO (Data Transfer Object)

export class CreateUserDto {
  @IsString()
  readonly name: string;

  @IsEmail()
  readonly email: string;

  @IsInt()
  readonly age?: number;
}

Crée un DTO CreateUserDto pour transférer des données lors de la création d'un utilisateur.

Fonctions & méthodes essentielles

Utiliser le décorateur @Injectable()

@Injectable()
export class UsersService {
  private users: User[] = [];

  findAll(): User[] {
    return this.users;
  }

  findOne(id: number): User {
    return this.users.find(user => user.id === id);
  }
}

Définit un service UsersService avec des méthodes pour gérer les utilisateurs.

Utiliser le décorateur @Inject()

@Controller('users')
export class UsersController {
  constructor(private readonly usersService: UsersService) {}

  @Get()
  findAll(): User[] {
    return this.usersService.findAll();
  }
}

Injecte le service UsersService dans un contrôleur.

Patterns courants

Utiliser l'architecture MVC (Model-View-Controller)

@Controller('users')
export class UsersController {
  constructor(private readonly usersService: UsersService) {}

  @Get()
  findAll(): User[] {
    return this.usersService.findAll();
  }

  @Post()
  create(@Body() createUserDto: CreateUserDto): User {
    return this.usersService.create(createUserDto);
  }
}

@Injectable()
export class UsersService {
  private users: User[] = [];

  findAll(): User[] {
    return this.users;
  }

  findOne(id: number): User {
    return this.users.find(user => user.id === id);
  }

  create(createUserDto: CreateUserDto): User {
    const user: User = {
      id: Date.now(),
      ...createUserDto,
    };
    this.users.push(user);
    return user;
  }
}

Implémente l'architecture MVC avec des contrôleurs, services et modèles.

Opérations avancées

Utiliser la pagination

@Controller('users')
export class UsersController {
  constructor(private readonly usersService: UsersService) {}

  @Get()
  findAll(@Query() query: PaginationQuery): User[] {
    const { page = 1, limit = 10 } = query;
    return this.usersService.findAll(page, limit);
  }
}

@Injectable()
export class UsersService {
  private users: User[] = [];

  findAll(page: number, limit: number): User[] {
    const startIndex = (page - 1) * limit;
    const endIndex = page * limit;
    return this.users.slice(startIndex, endIndex);
  }
}

Implémente la pagination pour les utilisateurs.

Utiliser le middleware

import { Injectable, NestMiddleware } from '@nestjs/common';
import { Request, Response, NextFunction } from 'express';

@Injectable()
export class LoggerMiddleware implements NestMiddleware {
  use(req: Request, res: Response, next: NextFunction) {
    console.log(`Request...`);
    next();
  }
}

Crée un middleware LoggerMiddleware pour enregistrer les requêtes.

Debugging & outils

Utiliser l'inspecteur de debug

npm run dev -- --debug-brk

Lance le développement avec un point d'arrêt initial.

Utiliser les logs

@Injectable()
export class UsersService {
  private users: User[] = [];

  findAll(): User[] {
    console.log('Fetching all users');
    return this.users;
  }

  findOne(id: number): User {
    console.log(`Finding user with id ${id}`);
    return this.users.find(user => user.id === id);
  }
}

Ajoute des logs pour déboguer le code.

Utiliser Postman

- Ouvrez Postman.
- Créez une nouvelle requête GET à l'URL de votre application (par exemple, `http://localhost:3000/users`).
- Enregistrez et exécutez la requête pour tester le contrôleur `UsersController`.

Utilisez Postman pour tester les routes NestJS.


Projet NestJS a lancer ?

Besoin d'aide sur un projet ? Decrivez-le pour des conseils personnalises.

Recevoir des conseils

Questions frequentes

A quoi sert cette cheatsheet NestJS ?
Cette cheatsheet NestJS regroupe la syntaxe, les commandes et les astuces essentielles pour NestJS. Elle est concue pour servir d'aide-memoire rapide, que vous soyez debutant ou developpeur confirme cherchant une reference rapide.
Comment utiliser cette cheatsheet NestJS ?
Parcourez les sections pour trouver la syntaxe ou la commande dont vous avez besoin. Vous pouvez la garder ouverte dans un onglet pendant que vous codez, ou la copier dans vos notes pour un acces hors ligne.
Cette cheatsheet est-elle a jour ?
Oui, nos cheatsheets sont regulierement mises a jour pour refleter les dernieres versions et bonnes pratiques de NestJS. Si vous remarquez une information obsolete, n'hesitez pas a nous contacter.

Pages liees

Chaque semaine, le meilleur de la tech francaise

Tendances, salaires, outils et opportunites — directement dans votre boite mail.

Gratuit. Desabonnement en un clic. Pas de spam.