Значения конфигурации
Часть раздела TypeScript и NestJS путешествия по Node.js на Coddy. Урок 9 из 17.
Размер страницы — это настройка, поэтому её следует получать из окружения, а не прописывать в контроллере. Провайдер значений регистрирует любое значение под именем, которое называется токеном.
providers: [
{ provide: 'CURRENCY', useValue: process.env.CURRENCY ?? 'EUR' },
],
constructor(@Inject('CURRENCY') private readonly currency: string) {}У строки нет класса, который Nest мог бы определить по типу параметра, поэтому @Inject('CURRENCY') задаёт имя токена. В обоих местах оно должно быть написано одинаково: опечатка остановит приложение с ошибкой «не удаётся разрешить зависимости». Значения окружения всегда являются строками; преобразуйте их с помощью Number(), когда нужно число.
Задание
Легко- Зарегистрируй
PAGE_SIZEвTasksModule:process.env.PAGE_SIZEкак число, значение 10, если оно не задано. В этом уроке установи значение 2. GET /tasksвозвращает{ items, page, total, pages };?page=2возвращает следующую страницу, а фильтрация по-прежнему выполняется поdone.- Отправь запросы
GET /tasks,GET /tasks?page=2, затемGET /tasks?page=9.
Попробуйте сами
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 {}