Sorgu Parametreleri
Coddy'nin Node.js Journey'sinin TypeScript ve NestJS bölümünün bir parçası. Ders 5 / 24.
Yalnızca açık görevleri isteyen bir istemcinin tüm görevleri indirip kendisinin filtrelemesi gerekmemelidir. Sorgu dizesi, ? işaretinden sonraki bölüm, bu tür seçenekleri taşır.
@Get()
findAll(@Query('author') author?: string) {
if (!author) {
return this.books;
}
return this.books.filter((book) => book.author === author);
}@Query('author'), ?author=Le%20Guin değerini okur veya istekte böyle bir değer yoksa undefined verir.
TypeScript türleri kod çalışırken kaldırılır: Node, türler çıkarıldıktan sonra geriye kalan JavaScript'i çalıştırır ve türleri hiçbir şey denetlemez. inStock?: boolean yazsanız bile Nest size truthy olan 'false' dizesini verir. Türler kodunuzu belgeler ve düzenleyiciye yardımcı olur; sorgu değerlerini metin olarak karşılaştırın.
Görev
KolayGET /tasks?done=trueyalnızca tamamlanmış görevleri döndürür;GET /tasks?done=falseyalnızca açık görevleri döndürür.doneolmadanGET /taskstüm görevleri döndürür.- Önce
GET /tasks?done=false, ardındanGET /tasks?done=truegönder.
Kendin dene
import { Controller, Get, Param } from '@nestjs/common';
interface Task {
id: number;
title: string;
done: boolean;
}
@Controller('tasks')
export class TasksController {
private tasks: Task[] = [
{ id: 1, title: 'Write the README', done: true },
{ id: 2, title: 'Fix the login bug', done: false },
{ id: 3, title: 'Plan the sprint', done: false },
];
@Get()
findAll(): Task[] {
return this.tasks;
}
@Get(':id')
findOne(@Param('id') id: string): Task | undefined {
return this.tasks.find((task) => task.id === Number(id));
}
}
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
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