Menu
CoddyTech

Konfigurationswerte

Teil des Abschnitts TypeScript und NestJS der Node.js-Journey von Coddy. Lektion 9 von 17.

Die Seitengröße ist eine Einstellung und sollte daher aus der Umgebung stammen, statt im Controller festgelegt zu werden. Ein Wert-Provider registriert einen beliebigen Wert unter einem Namen, der Token genannt wird.

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

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

Für einen String gibt es keine Klasse, die Nest anhand des Parametertyps erkennen kann. Deshalb benennt @Inject('CURRENCY') das Token. Es muss an beiden Stellen gleich geschrieben werden: Ein Tippfehler führt dazu, dass die App mit dem Fehler „can't resolve dependencies“ abbricht. Umgebungswerte sind immer Strings; wandle sie mit Number() um, wenn du eine Zahl benötigst.

challenge icon

Aufgabe

Einfach
  • Registriere PAGE_SIZE in TasksModule: process.env.PAGE_SIZE als Zahl, 10, wenn nicht gesetzt. In dieser Lektion wird der Wert auf 2 gesetzt.
  • GET /tasks liefert { items, page, total, pages }; ?page=2 liefert die nächste Seite, und done filtert weiterhin.
  • Sende GET /tasks, GET /tasks?page=2 und dann GET /tasks?page=9.

Probier es selbst

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

Alle Lektionen in TypeScript und NestJS