Menu
CoddyTech

設定値

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()で変換してください。

challenge icon

チャレンジ

簡単
  • 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 {}

TypeScriptとNestJSのすべてのレッスン