Criando tarefas
Parte da seção TypeScript e NestJS do Journey de Node.js da Coddy. Lição 4 de 17.
Um cliente que cria uma tarefa a envia como JSON no corpo da solicitação e precisa receber de volta a tarefa salva.
@Post()
create(@Body() review: { stars: number }) {
this.reviews.push(review);
return review;
}@Post() mapeia POST no caminho do controlador para o método, e @Body() entrega a ele o JSON analisado. O Nest lê os corpos JSON por conta própria, então não é necessário adicionar express.json().
O Nest responde a um POST com 201 Created, o status que indica que um novo recurso existe, e a todos os outros métodos com 200. @HttpCode(200) no método mudaria isso; para uma criação, deixe como está.
Desafio
FácilPOST /tasksresponde com 201 e a nova tarefa: um novo númeroid, otitleedone: false.GET /tasks/:ida encontra em seguida.- Envie essa solicitação e, em seguida, envie
POST /taskscom{}e veja o que é salvo.
Experimente você mesmo
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));
}
}
Todas as lições de TypeScript e NestJS
1Fundamentos do Nest
Olá, NestParâmetros de rota