Sağlayıcıları Kaydetme
Coddy'nin Node.js Journey'sinin TypeScript ve NestJS bölümünün bir parçası. Ders 10 / 24.
Nest yalnızca bir modülün providers içinde listelediği sınıfları oluşturur. Bir sağlayıcı başka bir sağlayıcıya ihtiyaç duyabilir ve hepsinin kaydedilmiş olması gerekir.
@Injectable()
export class OrdersService {
constructor(private readonly mailer: MailerService) {}
}MailerService modülün providers listesinde yoksa uygulama başlamaz ve Nest neyi bulamadığını tam olarak belirtir:
Nest can't resolve dependencies of the OrdersService (?).
Please make sure that the argument MailerService at index [0]
is available in the OrdersModule module.?, eksik kurucu argümanını belirtir; mesajda düzeltmeniz gereken sınıfın ve modülün adı yer alır.
Görev
Kolay- Başlangıç kodu
ClockService'i ekler.TasksService'te bunu isteyin ve her yeni görevecreatedAt: this.clock.now()verin. ClockService'iTasksModule'e kaydedin.- Bir başlıkla
POST /tasksisteği gönderin. ArdındanClockService'iproviders'tan çıkarın, “Çalıştır” düğmesine basın, hatayı okuyun ve geri ekleyin.
Kendin dene
import { Injectable, NotFoundException } from '@nestjs/common';
export interface Task {
id: number;
title: string;
done: boolean;
createdAt?: string;
}
@Injectable()
export class TasksService {
private tasks: Task[] = [
{ id: 1, title: 'Write the README', done: true, createdAt: '2026-01-05T09:00:00.000Z' },
{ id: 2, title: 'Fix the login bug', done: false, createdAt: '2026-01-06T14:30:00.000Z' },
{ id: 3, title: 'Plan the sprint', done: false, createdAt: '2026-01-07T08:15:00.000Z' },
];
findAll(done?: string): Task[] {
if (done === undefined) {
return this.tasks;
}
return this.tasks.filter((task) => task.done === (done === 'true'));
}
findOne(id: number): Task {
const task = this.tasks.find((task) => task.id === id);
if (!task) {
throw new NotFoundException(`Task ${id} not found`);
}
return task;
}
create(title: string): Task {
const id = Math.max(0, ...this.tasks.map((task) => task.id)) + 1;
const task = { id, title, done: false };
this.tasks.push(task);
return task;
}
remove(id: number): void {
this.findOne(id);
this.tasks = this.tasks.filter((task) => task.id !== id);
}
}
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