Menu
CoddyTech

Paramètres de route

Fait partie de la section TypeScript et NestJS du Journey Node.js de Coddy. Leçon 2 sur 17.

Un client a souvent besoin d’une seule tâche, pas de toute la liste. Un chemin peut contenir un paramètre : une partie qui change d’une requête à l’autre.

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

:isbn correspond à n’importe quelle valeur à cet emplacement du chemin, donc GET /books/978 atteint cette méthode. @Param('isbn') transmet cette valeur à la méthode. C’est toujours du texte : /books/42 donne la chaîne '42', jamais le nombre 42.

Si tu omets le nom, @Param() fournit l’objet contenant tous les paramètres, { isbn: '978' }, au lieu de la valeur.

challenge icon

Défi

Facile
  • Ajoutez GET /tasks/:id : il renvoie la tâche correspondant à cet identifiant.
  • Envoyez GET /tasks/2, puis GET /tasks/99 et observez ce que renvoie un identifiant sans tâche.

Essayez vous-même

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

Toutes les leçons de TypeScript et NestJS