Menu
CoddyTech

Valori di configurazione

Fa parte della sezione TypeScript e NestJS del percorso Node.js di Coddy. Lezione 9 di 17.

La dimensione della pagina è un'impostazione, quindi dovrebbe provenire dall'ambiente invece di essere scritta direttamente nel controller. Un provider di valori registra un valore qualsiasi con un nome, chiamato token.

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

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

Una stringa non ha una classe che Nest possa ricavare dal tipo del parametro, quindi @Inject('CURRENCY') specifica il token. Deve essere scritto allo stesso modo in entrambi i punti: un errore di battitura blocca l'app con l'errore "can't resolve dependencies". I valori dell'ambiente sono sempre stringhe; convertili con Number() quando ti serve un numero.

challenge icon

Sfida

Facile
  • Registra PAGE_SIZE in TasksModule: process.env.PAGE_SIZE come numero, 10 se non è impostato. Questa lezione lo imposta a 2.
  • GET /tasks restituisce { items, page, total, pages }; ?page=2 restituisce la pagina successiva e done continua a filtrare.
  • Invia GET /tasks, GET /tasks?page=2, poi GET /tasks?page=9.

Provalo tu

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 {}

Tutte le lezioni di TypeScript e NestJS