設定値
CoddyのNode.jsジャーニー「TypeScriptとNestJS」セクションの一部。レッスン 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 {}