Creare attività
Fa parte della sezione TypeScript e NestJS del percorso Node.js di Coddy. Lezione 4 di 17.
Un client che crea un’attività la invia come JSON nel corpo della richiesta e ha bisogno di ricevere l’attività salvata.
@Post()
create(@Body() review: { stars: number }) {
this.reviews.push(review);
return review;
}@Post() associa POST al metodo sul percorso del controller e @Body() gli passa il JSON analizzato. Nest legge autonomamente i corpi JSON, quindi non c’è bisogno di aggiungere express.json().
Nest risponde a una richiesta POST con 201 Created, lo stato che indica che esiste una nuova risorsa, e a tutti gli altri metodi con 200. @HttpCode(200) sul metodo lo cambierebbe; per una creazione, lascialo così.
Sfida
FacilePOST /taskscon{ "title": "Buy milk" }risponde con 201 e la nuova attività: un nuovo numeroid, iltitleedone: false.GET /tasks/:idla trova in seguito.- Invia quella richiesta, poi invia
POST /taskscon{}e guarda cosa viene salvato.
Provalo tu
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));
}
}
Tutte le lezioni di TypeScript e NestJS
1Fondamenti di Nest
Ciao, NestParametri di route