Menu
CoddyTech

Valores de configuração

Parte da seção TypeScript e NestJS do Journey de Node.js da Coddy. Lição 9 de 17.

O tamanho da página é uma configuração, então deve vir do ambiente em vez de ser definido diretamente no controlador. Um provedor de valor registra qualquer valor com um nome, chamado token.

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

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

Uma string não tem uma classe que o Nest possa identificar pelo tipo do parâmetro, então @Inject('CURRENCY') especifica o token. Ele deve ser escrito da mesma forma nos dois lugares: um erro de digitação interrompe o aplicativo com o erro "can't resolve dependencies". Os valores do ambiente são sempre strings; converta-os com Number() quando precisar de um número.

challenge icon

Desafio

Fácil
  • Registre PAGE_SIZE em TasksModule: process.env.PAGE_SIZE como número, 10 quando não estiver definido. Esta lição define esse valor como 2.
  • GET /tasks retorna { items, page, total, pages }; ?page=2 retorna a próxima página, e done continua filtrando.
  • Envie GET /tasks, GET /tasks?page=2 e, em seguida, GET /tasks?page=9.

Experimente você mesmo

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

Todas as lições de TypeScript e NestJS