Paramètres de requête
Fait partie de la section TypeScript et NestJS du Journey Node.js de Coddy. Leçon 3 sur 17.
Un client qui ne veut que les tâches ouvertes ne devrait pas avoir à télécharger toutes les tâches et à les filtrer lui-même. La chaîne de requête, la partie après ?, contient des options de ce genre.
@Get()
findAll(@Query('author') author?: string) {
if (!author) {
return this.books;
}
return this.books.filter((book) => book.author === author);
}@Query('author') lit ?author=Le%20Guin, ou renvoie undefined si la requête ne contient pas ce paramètre.
Les types TypeScript sont supprimés à l’exécution du code : Node exécute le JavaScript restant après la suppression des types, et rien ne les vérifie. Écris inStock?: boolean et Nest te transmet quand même la chaîne 'false', qui est évaluée comme vraie. Les types documentent ton code et aident l’éditeur ; compare les valeurs de requête sous forme de texte.
Défi
FacileGET /tasks?done=truerenvoie uniquement les tâches terminées ;GET /tasks?done=falseuniquement les tâches en cours.- Sans
done,GET /tasksrenvoie toutes les tâches. - Envoie
GET /tasks?done=false, puisGET /tasks?done=true.
Essayez vous-même
import { Controller, Get, Param } 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;
}
@Get(':id')
findOne(@Param('id') id: string): Task | undefined {
return this.tasks.find((task) => task.id === Number(id));
}
}
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de TypeScript et NestJS
1Les bases de Nest
Bonjour, NestParamètres de route