Photo by Unsplash

Pourquoi NestJs est l'un des meilleurs frameworks pour Node?

La communauté de Javascript est l'une des plus importantes partout dans le monde entier, pas étonnant que ce soit l’une des langues plus utilisées chaque année.
Même si tu développes pour Backend, tu as beaucoup d’options pour choisir. Si tu veux faire de backend, l’option la plus populaire est ExpressJS. Tu dois installer des plugins dans ton package.json et ensuite commencer à créer un API ou des views qui renvoie HTML depuis le serveur.
Probablement, tu as la question: “Et pourquoi tu préfères NestJS, s'il y a beaucoup d’options populaires comment Express ou Hapi?
Ici, je te donnerai quelques raisons pour lesquelles j’ai travaillé en NestJS et pourquoi je le ferai encore.

C'est NodeJS (Javascript)

On connaît tous les avantages qu'offre NodeJS en tant que framework Backend, la vitesse d'exécution et la courbe d'apprentissage pour les personnes qui arrivent depuis le Frontend.
1
# Installer NestJS globalement
2
npm i -g @nestjs/cli
3
# Créer un nouveau projet
4
nest new project-name

Il recommande, mais pas d’obligation, d’un ordre établi pour fonctionner

Et ça me rappelle à Laravel (PHP).
Je voudrais dire, l’organisation de dossiers ressemble à Angular, il ne t’oblige pas à utiliser la méthode MVC, mais c’est suggéré pour maintenir l’ordre. J’ai trouvé qu’une moyenne d’organisation est la combinaison de quelque framework MVC + Angular. Toute personne qui travaille sur autre framework de Backend (sauf Express JS) se sentira plus à l’aise avec la transition à Nest.
1
// Un contrôleur REST commun dans NestJS
2
@Controller('users')
3
export class UsersController {
4
constructor(private readonly usersService: UsersService) {}
5
6
@Post()
7
create(@Body() createUserDto: CreateUserDto) {
8
return this.usersService.create(createUserDto);
9
}
10
11
@Get()
12
findAll() {
13
return this.usersService.findAll();
14
}
15
16
@Get(':id')
17
findOne(@Param('id') id: string) {
18
return this.usersService.findOne(+id);
19
}
20
21
@Patch(':id')
22
update(@Param('id') id: string, @Body() updateUserDto: UpdateUserDto) {
23
return this.usersService.update(+id, updateUserDto);
24
}
25
26
@Delete(':id')
27
remove(@Param('id') id: string) {
28
return this.usersService.remove(+id);
29
}
30
}

Support pour Typescript

Depuis 2020, les développeurs qui utilisent Typescript ont augmenté, je pense qu’est la complexité des projets en cours, et la popularité du frontend. Il y a beaucoup de donnes pour connecter entre Backend et Frontend. C’est obligatoire promouvoir des normes pour qu’ils ne soient pas confondus sur les types de variables, ou que retournent les fonctions. C’est là où Typescript serait très utile.
Quand NestJS utilise Typescript, la facilité d’écrire de code, ça augmente considérablement, et de même, on réduit les erreurs dans les types de données avant la transpilation (ou la compilation).
1
// Un modèle de la base de données qui utilise TypeORM avec Typescript
2
import { Entity, Column, PrimaryGeneratedColumn } from 'typeorm';
3
4
@Entity()
5
export class Photo {
6
@PrimaryGeneratedColumn()
7
id: number;
8
9
@Column({ length: 500 })
10
name: string;
11
12
@Column('text')
13
description: string;
14
15
@Column()
16
filename: string;
17
18
@Column('int')
19
views: number;
20
21
@Column()
22
isPublished: boolean;
23
}

La documentation

Ce que j’aime d’un framework, c’est la documentation et les exemples qui sont présentés. Une mauvaise documentation est la principale raison pour laquelle un développeur junior ou mid, il ne se sent pas très motivé pour travailler sur un framework web, donc, de l’utiliser. Je crois que NestJS répond à cette exigence. C’est une des meilleures documentations que j’ai vues avec Laravel.

Support pour GraphQL, OpenAPI, ORMs, etc.

Avec une section pleine de «recettes» (snippets) (https://docs.nestjs.com/recipes) et des configurations par défaut pour la génération d’un CRUD, hot reload, TypeORM, Sequelize, Swagger, Prisma et beaucoup d’outils. (https://docs.nestjs.com/microservices)
Tu as besoin d’utiliser GraphQL? Tu peux installer quelques plugins et avec moins de 10 lignes de code, tu as ajouté pour ça. As-tu besoin d’exposer des endpoints? NestJS offre OpenAPI. Dans un projet tu veux utiliser Sequelize comme ORM ou TypeORM car tu désirerais essayer lequel te semble meilleur?. Passe facilement d’un ORM à l’autre en utilisant les bibliothèques correspondantes et en apportant quelques modifications à la configuration. Plus, si tu as déjà travaillé avec ExpressJS, les configurations générales sont un jeu d’enfants.
1
// Ajout support pour GraphQL avec 1 ligne de code
2
// Un NPM install est nécessaire avant
3
import { Module } from '@nestjs/common';
4
import { GraphQLModule } from '@nestjs/graphql';
5
6
@Module({
7
imports: [GraphQLModule.forRoot({})],
8
})
9
export class AppModule {}
Je pense que ce sont les 5 plus importantes raisons pour lesquelles tout nouveau projet qui nécessite Node pour le Backend, j’utiliserais NestJS sans aucune hésitation. Bien sûr, il y a plus de fonctionnalités qui facilitent travailler sur le Backend, comment schedulers, websockets, etc. Je te laisse découvrir tout ça dans sa documentation.
Mes articles ne sont pas generés par l'IA, cependant ils pourrait y être corrigés. Le premier brouillon est ma création originale

Auteur

Écrit par Helmer Davila