Parametry zapytania
Część sekcji TypeScript i NestJS ścieżki Node.js w Coddy. Lekcja 3 z 17.
Klient, który potrzebuje tylko otwartych zadań, nie powinien pobierać wszystkich zadań i samodzielnie ich filtrować. Ciąg zapytania, czyli część po ?, zawiera między innymi takie opcje.
@Get()
findAll(@Query('author') author?: string) {
if (!author) {
return this.books;
}
return this.books.filter((book) => book.author === author);
}@Query('author') odczytuje ?author=Le%20Guin lub zwraca undefined, gdy żądanie nie zawiera tej wartości.
Typy TypeScript są usuwane podczas uruchamiania kodu: Node uruchamia JavaScript pozostały po usunięciu typów i nic ich nie sprawdza. Zapisz inStock?: boolean, a Nest nadal przekaże Ci ciąg znaków 'false', który jest traktowany jako prawda. Typy dokumentują Twój kod i pomagają edytorowi; porównuj wartości zapytania jako tekst.
Wyzwanie
ŁatwyGET /tasks?done=truezwraca tylko ukończone zadania;GET /tasks?done=falsezwraca tylko otwarte zadania.- Bez
doneGET /taskszwraca wszystkie zadania. - Wyślij
GET /tasks?done=false, a następnieGET /tasks?done=true.
Spróbuj swoich sił
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));
}
}
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.