Menu
CoddyTech

Parametri di route

Fa parte della sezione TypeScript e NestJS del percorso Node.js di Coddy. Lezione 2 di 17.

Un client spesso ha bisogno di un singolo elemento, non dell'intero elenco. Un percorso può contenere un parametro: una parte che cambia da una richiesta all'altra.

@Get(':isbn')
findOne(@Param('isbn') isbn: string) {
    return this.books.find((book) => book.isbn === isbn);
}

:isbn corrisponde a qualsiasi valore in quella posizione del percorso, quindi GET /books/978 raggiunge questo metodo. @Param('isbn') passa quel valore al metodo. È sempre testo: /books/42 restituisce la stringa '42', mai il numero 42.

Se ometti il nome, @Param() restituisce l'oggetto con tutti i parametri, { isbn: '978' }, invece del valore.

challenge icon

Sfida

Facile
  • Aggiungi GET /tasks/:id: restituisce l'attività con quell'id.
  • Invia GET /tasks/2, poi GET /tasks/99 e osserva cosa restituisce un id senza un'attività corrispondente.

Provalo tu

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;
    }
}

Tutte le lezioni di TypeScript e NestJS