Yapılandırma Değerleri
Coddy'nin Node.js Journey'sinin TypeScript ve NestJS bölümünün bir parçası. Ders 12 / 24.
GET /tasks, 3. bölümde olduğu gibi görevlerini her seferinde bir sayfa olacak şekilde döndürmek üzere. Bir sayfaya kaç görevin sığacağı bir ayardır; bu nedenle koda yazılmak yerine ortamdan alınmalıdır. Bir değer sağlayıcısı, herhangi bir değeri token adı verilen bir ad altında kaydeder.
providers: [
{ provide: 'CURRENCY', useValue: process.env.CURRENCY ?? 'EUR' },
],
constructor(@Inject('CURRENCY') private readonly currency: string) {}Bir dizenin, Nest'in parametre türünden okuyabileceği bir sınıfı yoktur; bu nedenle @Inject('CURRENCY') token'ı adlandırır. Her iki yerde de aynı şekilde yazılmalıdır: bir yazım hatası uygulamayı "bağımlılıklar çözümlenemiyor" hatasıyla durdurur. Ortam değerleri her zaman dizgedir; bir sayıya ihtiyacınız olduğunda bunları Number() ile dönüştürün.
Görev
KolayBu adım, A Second Module dersindeki proje dosyaların yerine kurs için hazırlanmış Nest görev takipçisi projesini açar ( src/stats/stats.module.ts dâhil). Önceki çalışmaların kendi dersinde kalır. src/tasks/tasks.module.ts dosyasını düzenlemeden önce sağlanan dosyaları oku. Bu kopyada Nest servisi ve istatistikler modülü bulunur; sayfalama kodu da sağlanmıştır.
Bu hazırlanmış görev takipçisi, GET /tasks uç noktasına sayfalama ekler. src/tasks/tasks.module.ts dosyasında PAGE_SIZE adlı bir değer sağlayıcısı kaydet. Ortam değişkeninin değerini oku, yoksa varsayılan olarak 10 kullan ve sayıya dönüştür.
src/tasks/tasks.controller.ts dosyasında sabit pageSize alanını kaldır. Sağlayıcıyı kurucuda pageSize adlı private readonly sayısal alan olarak al. Tam belirteç adını kullanarak @Inject kullan; içe aktarma ve sayfalama kodu sağlanmıştır.
Deneyin: Run, PAGE_SIZE=2 değerini ayarlar. GET /tasks, iki öğe, 1. sayfa, toplam 3 ve 2 sayfa döndürür. GET /tasks?page=2 kalan görevi döndürür. Bu ortam değişkeni olmadan, her sayfada varsayılan olarak on öğe gösterilir.
Kendin dene
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 ve NestJS bölümündeki tüm dersler
1Nest Temelleri
Sınıflar ve MetotlarMerhaba, NestBir Controller Kaydetme4Guard’lar, Filtreler, Interceptor’lar
Guard’larKendi başına pratik yap: Express playground