Site icon Blog ARC Optimizer

Apprentissage NESTJS PARTIE 1: COMMENCER

Apprentissage NESTJS PARTIE 1: COMMENCER


Cette série présente aux développeurs NESTJS. La partie 1 vous montre comment créer votre première application NESTJS; ajouter un contrôleur, un modèle et un service; et effectuer une opération de poste.

Dans cette section, nous commencerons à travailler avec NESTJS. Cette partie de la série d’apprentissage couvre les sujets suivants:

  1. Installation
  2. Création du premier contrôleur
  3. Créer le premier service
  4. Ajout d’un point de terminaison Get
  5. Ajout d’un point de terminaison post

Pour l’instant, nous gérerons les données à l’aide d’un tableau JavaScript. Dans les sections futures, nous apprendrons à nous connecter à une base de données.

Installation

Pour commencer à se développer avec Nest, vérifiez que les éléments suivants sont installés sur votre machine de développement:

  • Nodejs version 20 ou supérieure
  • Nid CLI

Pour commencer à développer avec Nest sur votre machine locale, assurez-vous que la dernière version de Node.js est installée. Que Node.js soit installé ou non, vous pouvez le trouver en utilisant la commande ci-dessous sur le terminal.

node -v

Si Node.js est installé, vous devez faire retourner la version. Si vous n’obtenez pas le numéro de version, installez Node.js sur votre machine locale.

Après l’installation réussie de Node.js, installez Nest CLI en exécutant la commande ci-dessous:

npm i -g @nestjs/cli

Pour valider si Nest CLI est installé avec succès, exécutez la commande nest dans le terminal, et vous devriez obtenir la sortie suivante.

nest

Création de l’application

Pour créer la première application Nest, exécutez la commande Nest CLI et sélectionnez un gestionnaire de packages.

nest new api1

La commande ci-dessus doit échafauner une application de nid de base, et vous devriez être en mesure de voir la structure du dossier.

Vous devriez avoir:

  • Contrôleur d’application
  • Service d’application
  • Module d’application
  • Contrôleur principal
  • Fichiers liés aux tests unitaires

Pour valider la création réussie du projet, exécutez la commande suivante. Vous devriez faire fonctionner une API.

npm run start 

Dans le navigateur, accédez à http: // localhost: 3000 / Et vous devriez obtenir Hello World!

Vous avez installé avec succès le logiciel requis pour Nest et échafaudé le projet API à l’aide de la commande CLI.

Ajout d’un contrôleur

Pour ajouter un nouveau contrôleur dans une application NESTJS, utilisez la commande NEST CLI suivante:

nest generate controller book

Après avoir exécuté avec succès la commande, un dossier de livre contenant deux fichiers doit apparaître à l’intérieur du src annuaire.

  1. book.controller.ts – le fichier du contrôleur
  2. book.controller.spe.ts – Le fichier de test unitaire

Aussi, vous devriez voir BookController ajouté dans le controllers tableau de l’Appmodule.

import { BookController } from './book/book.controller';

@Module({
  imports: [],
  controllers: [AppController, BookController],
  providers: [AppService],
})
export class AppModule {}

Une fois le BookController est généré, ouvrez le fichier nouvellement créé (par exemple, book.controller.ts) et ajoutez un itinéraire Get, comme indiqué dans la liste de code suivante:

@Controller('book')
export class BookController {

    @Get()
    findAll() {
        return 'This action returns all books';
    }

    @Get(':id')
    findOne(@Param('id') id: string) {
        return `This action returns a #${id} book`;
    }
}

Après avoir ajouté l’itinéraire Get, vous pouvez y accéder dans votre navigateur en naviguant vers http: // localhost: 3000 / book ou http: // localhost: 3000 / book / 7.

Ajout d’un modèle

Il n’y a pas de commande CLI pour ajouter un modèle au nid, mais vous pouvez l’ajouter manuellement. Vous pouvez avoir une interface ou une classe en tant que modèle. Je préfère utiliser une interface comme modèle.

export interface IBook {
  id: number;
  title: string;
  author: string;
}

Ajout d’un service

Pour créer un service dans Nest, vous pouvez utiliser la commande CLI suivante:

nest generate service book

Après avoir exécuté avec succès la commande, un fichier book.service.ts devrait apparaître dans le répertoire du livre. La commande ci-dessus ajoute les deux fichiers ci-dessous dans le répertoire du livre.

  1. book.service.ts – la mise en œuvre du service
  2. book.service.spec.ts – le fichier de test unitaire du service

Le service de livres est une classe avec @injectable() décorateur.

@Injectable()
export class BookService {
}

Dans le service, vous écrivez du code pour partager sur plusieurs contrôleurs. Dans le service de livres, nous écrivons du code pour récupérer le livre comme indiqué dans la liste de code ci-dessous.

@Injectable()
export class BookService {

    private books :IBook[] = [
        { id: 1, title: '1984', author: 'George Orwell' },
        { id: 2, title: 'To Kill a Mockingbird', author: 'Harper Lee' },
        { id: 3, title: 'The Great Gatsby', author: 'F. Scott Fitzgerald' },
    ];
    
    findAll(): IBook[] {
        return this.books;
    }
    
    findOne(id: number):IBook | undefined {
        return this.books.find(book => book.id === id);
    }
}

Pour utiliser BookService dans le BookController, injecter dans le contrôleur. Vous pouvez le faire en l’ajoutant au constructeur de BookController, comme ceci:

@Controller('book')
export class BookController {

    constructor(private readonly bookService: BookService) {

    }
}

Après avoir injecté le service, utilisez-le sur différents itinéraires, comme indiqué ci-dessous.

@Get()
    findAll(): IBook[] {
      return this.bookService.findAll();
    }
  
    @Get(':id')
    findOne(@Param('id') id: string): IBook | undefined {
      return this.bookService.findOne(Number(id));
    }

Dans le navigateur, accédez à http: // localhost: 3000 / livre et vous devriez faire revenir le tableau JSON des livres.

Effectuer une opération de poste

Comme l’opération GET, l’opération de poste nécessite d’ajouter un point de terminaison de post et une fonction de création correspondante dans le BookService.

Vous pouvez définir la fonction de création dans le BookService Comme indiqué ci-dessous:

  create(book: IBook): void {
        this.books.push(book);
    }

Ensuite, définissez un point de terminaison post BookControllercomme indiqué ci-dessous. Dans un ajout de livre réussi, il renvoie un code d’état 201. Si une erreur se produit, il renvoie une erreur de serveur interne.

   @Post()
    create(@Body() book: IBook, @Res() res: Response): void {
        try {
            this.bookService.create(book);
            res.status(HttpStatus.CREATED).send({ message: 'Resource created successfully' });
          } catch (error) {
            res.status(HttpStatus.INTERNAL_SERVER_ERROR).send({ message: 'Internal Server Error' });
          }
    }

Vous pouvez tester l’opération de poste dans le progrès Telerik Fiddler partout en envoyant une demande de poste avec l’objet JSON Book inclus dans le corps de la demande.

Résumé

Dans cette partie de la série NESTJS d’apprentissage en plusieurs parties, vous avez construit votre première application NESTJS et implémentée GET et POST Endpoints à l’aide d’un simple tableau JavaScript pour le stockage de données. Dans la partie suivante, vous apprendrez à vous connecter à une base de données et à effectuer des opérations CRUD complètes.




Source link
Quitter la version mobile