Nilai Konfigurasi
Termasuk bagian TypeScript dan NestJS dalam perjalanan Node.js di Coddy. Pelajaran 12 dari 24.
GET /tasks akan mengembalikan tugasnya satu halaman setiap kali, seperti di bagian 3. Jumlah tugas yang muat dalam satu halaman adalah pengaturan, jadi nilainya harus berasal dari lingkungan, bukan ditulis langsung ke dalam kode. Penyedia nilai mendaftarkan nilai apa pun dengan sebuah nama yang disebut token.
providers: [
{ provide: 'CURRENCY', useValue: process.env.CURRENCY ?? 'EUR' },
],
constructor(@Inject('CURRENCY') private readonly currency: string) {}string tidak memiliki class yang dapat dibaca Nest dari tipe parameter, jadi @Inject('CURRENCY') menentukan nama token. Penulisannya harus sama di kedua tempat: kesalahan ketik akan menghentikan aplikasi dengan error "can't resolve dependencies". Nilai lingkungan selalu berupa string. Ubah nilainya dengan Number() saat kamu memerlukan angka.
Tantangan
MudahLangkah ini membuka proyek pelacak tugas Nest yang telah disiapkan untuk kursus, bukan file proyekmu dari Modul Kedua (termasuk src/stats/stats.module.ts). Pekerjaanmu sebelumnya tetap berada di pelajarannya sendiri. Baca file yang disediakan sebelum mengedit src/tasks/tasks.module.ts. Salinan ini berisi service Nest dan module stats, dengan kode paginasi yang sudah disediakan.
Pelacak tugas yang disiapkan ini menambahkan paginasi ke GET /tasks. Di src/tasks/tasks.module.ts, daftarkan value provider bernama PAGE_SIZE. Baca nilai environment, gunakan nilai default 10 jika tidak ada, lalu ubah menjadi angka.
Di src/tasks/tasks.controller.ts, hapus field pageSize yang nilainya tetap. Terima provider di constructor sebagai field numerik private readonly bernama pageSize. Gunakan @Inject dengan nama token yang tepat. Import dan kode paginasi sudah disediakan.
Coba: tombol Jalankan menetapkan PAGE_SIZE=2. GET /tasks mengembalikan dua item, halaman 1, total 3, dan jumlah halaman 2. GET /tasks?page=2 mengembalikan tugas yang tersisa. Tanpa variabel environment tersebut, nilai defaultnya adalah sepuluh item per halaman.
Coba sendiri
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 {}
Semua pelajaran di TypeScript dan NestJS
Latihan sendiri: Playground Express