Créer des tâches
Fait partie de la section TypeScript et NestJS du Journey Node.js de Coddy. Leçon 4 sur 17.
Un client qui crée une tâche l’envoie au format JSON dans le corps de la requête et a besoin de récupérer la tâche enregistrée.
@Post()
create(@Body() review: { stars: number }) {
this.reviews.push(review);
return review;
}@Post() associe POST au chemin du contrôleur et à la méthode, et @Body() lui transmet le JSON analysé. Nest lit les corps JSON automatiquement ; il n’y a donc pas de express.json() à ajouter.
Nest répond à une requête POST avec 201 Created, le statut qui indique qu’une nouvelle ressource existe, et à toute autre méthode avec 200. @HttpCode(200) sur la méthode modifierait ce comportement ; pour une création, laisse-le tel quel.
Défi
FacilePOST /tasksavec{ "title": "Buy milk" }répond avec le code 201 et la nouvelle tâche : un nouvel identifiant numériqueid, letitleetdone: false.GET /tasks/:idla retrouve ensuite.- Envoyez cette requête, puis envoyez
POST /tasksavec{}et observez ce qui est enregistré.
Essayez vous-même
import { Controller, Get, Param, Query } 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(@Query('done') done?: string): Task[] {
if (done === undefined) {
return this.tasks;
}
return this.tasks.filter((task) => task.done === (done === 'true'));
}
@Get(':id')
findOne(@Param('id') id: string): Task | undefined {
return this.tasks.find((task) => task.id === Number(id));
}
}
Toutes les leçons de TypeScript et NestJS
1Les bases de Nest
Bonjour, NestParamètres de route