Menu
CoddyTech

Sorgu Parametreleri

Coddy'nin Node.js Journey'sinin TypeScript ve NestJS bölümünün bir parçası. Ders 3 / 17.

Yalnızca açık görevleri isteyen bir istemci, tüm görevleri indirip kendisi filtrelemek zorunda kalmamalıdır. Sorgu dizesi, ? işaretinden sonraki bölüm, bunun gibi 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 bu değer yoksa undefined döndürür.

TypeScript türleri kod çalışırken kaldırılır: Node, türler ayıklandı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 belgelendirir ve düzenleyiciye yardımcı olur; sorgu değerlerini metin olarak karşılaştırın.

challenge icon

Görev

Kolay
  • GET /tasks?done=true yalnızca tamamlanmış görevleri döndürür; GET /tasks?done=false yalnızca açık görevleri döndürür.
  • done olmadan GET /tasks tüm görevleri döndürür.
  • Önce GET /tasks?done=false, ardından GET /tasks?done=true isteğini gönderin.

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));
    }
}
quiz iconKendini test et

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