Parametry ścieżki
Część sekcji TypeScript i NestJS ścieżki Node.js w Coddy. Lekcja 2 z 17.
Klient często potrzebuje jednego elementu, a nie całej listy. Ścieżka może zawierać parametr: część, która zmienia się w zależności od żądania.
@Get(':isbn')
findOne(@Param('isbn') isbn: string) {
return this.books.find((book) => book.isbn === isbn);
}:isbn dopasowuje dowolną wartość w tym miejscu ścieżki, więc GET /books/978 wywołuje tę metodę. @Param('isbn') przekazuje tę wartość do metody. Zawsze jest to tekst: /books/42 zwraca ciąg znaków '42', nigdy liczbę 42.
Pomiń nazwę, a @Param() zwróci obiekt zawierający wszystkie parametry, { isbn: '978' }, zamiast samej wartości.
Wyzwanie
Łatwy- Dodaj
GET /tasks/:id: zwraca zadanie o tym identyfikatorze. - Wyślij
GET /tasks/2, a następnieGET /tasks/99i sprawdź, jaką odpowiedź zwraca identyfikator, dla którego nie ma zadania.
Spróbuj swoich sił
import { Controller, Get } 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;
}
}