Menu
CoddyTech

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.

challenge icon

Desafío

Fácil
  • Añade GET /tasks/:id: devuelve la tarea con ese id.
  • Envía GET /tasks/2, después GET /tasks/99 y 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