Menu
CoddyTech

Valores de configuración

Parte de la sección TypeScript y NestJS del Journey de Node.js de Coddy. Lección 9 de 17.

El tamaño de página es un ajuste, así que debe venir del entorno en lugar de escribirse en el controlador. Un proveedor de valores registra cualquier valor con un nombre, llamado token.

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

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

Una cadena no tiene una clase que Nest pueda obtener del tipo del parámetro, así que @Inject('CURRENCY') especifica el token. Debe escribirse igual en ambos lugares: un error tipográfico detiene la aplicación con el error "can't resolve dependencies". Los valores del entorno siempre son cadenas; conviértelos con Number() cuando necesites un número.

challenge icon

Desafío

Fácil
  • Registra PAGE_SIZE en TasksModule: process.env.PAGE_SIZE como número, 10 cuando no esté definido. Esta lección lo establece en 2.
  • GET /tasks responde con { items, page, total, pages }; ?page=2 devuelve la página siguiente, y done sigue filtrando.
  • Envía GET /tasks, GET /tasks?page=2 y después GET /tasks?page=9.

Pruébalo tú mismo

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 las lecciones de TypeScript y NestJS