Parámetros de ruta
Parte de la sección TypeScript y NestJS del Journey de Node.js de Coddy. Lección 2 de 17.
Un cliente suele necesitar una tarea, no toda la lista. Una ruta puede contener un parámetro: una parte que cambia de una solicitud a otra.
@Get(':isbn')
findOne(@Param('isbn') isbn: string) {
return this.books.find((book) => book.isbn === isbn);
}:isbn coincide con cualquier valor en esa posición de la ruta, por lo que GET /books/978 llega a este método. @Param('isbn') le pasa ese valor al método. Siempre es texto: /books/42 proporciona la cadena '42', nunca el número 42.
Si omites el nombre, @Param() proporciona el objeto con todos los parámetros, { isbn: '978' }, en lugar del valor.
Desafío
Fácil- Añade
GET /tasks/:id: devuelve la tarea con ese id. - Envía
GET /tasks/2, despuésGET /tasks/99y observa qué devuelve un id sin tarea.
Pruébalo tú mismo
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;
}
}
Todas las lecciones de TypeScript y NestJS
1Fundamentos de Nest
Hola, NestParámetros de ruta