Menu
CoddyTech

Valeurs de configuration

Fait partie de la section TypeScript et NestJS du Journey Node.js de Coddy. Leçon 9 sur 17.

La taille de la page est un paramètre ; elle devrait donc provenir de l’environnement au lieu d’être saisie dans le contrôleur. Un fournisseur de valeur enregistre une valeur sous un nom appelé jeton.

providers: [
    { provide: 'CURRENCY', useValue: process.env.CURRENCY ?? 'EUR' },
],

constructor(@Inject('CURRENCY') private readonly currency: string) {}

Une chaîne n’a pas de classe que Nest peut déduire du type du paramètre ; @Inject('CURRENCY') désigne donc le jeton. Il doit être orthographié de la même façon aux deux endroits : une faute de frappe arrête l’application avec l’erreur « can't resolve dependencies ». Les valeurs d’environnement sont toujours des chaînes ; convertissez-les avec Number() lorsque vous avez besoin d’un nombre.

challenge icon

Défi

Facile
  • Enregistre PAGE_SIZE dans TasksModule : process.env.PAGE_SIZE sous forme de nombre, avec 10 si la valeur n’est pas définie. Dans cette leçon, sa valeur est définie à 2.
  • GET /tasks renvoie { items, page, total, pages } ; ?page=2 renvoie la page suivante, et done continue de filtrer les résultats.
  • Envoie GET /tasks, puis GET /tasks?page=2, puis GET /tasks?page=9.

Essayez vous-même

import { Module } from '@nestjs/common';
import { ClockService } from './clock.service';
import { TasksController } from './tasks.controller';
import { TasksService } from './tasks.service';

@Module({
    controllers: [TasksController],
    providers: [TasksService, ClockService],
    exports: [TasksService],
})
export class TasksModule {}

Toutes les leçons de TypeScript et NestJS