Создание задач
Часть раздела TypeScript и NestJS путешествия по Node.js на Coddy. Урок 4 из 17.
Клиент, который создаёт задачу, отправляет её в формате JSON в теле запроса и должен получить сохранённую задачу в ответ.
@Post()
create(@Body() review: { stars: number }) {
this.reviews.push(review);
return review;
}@Post() связывает POST по пути контроллера с методом, а @Body() передаёт ему разобранный JSON. Nest самостоятельно читает тела запросов в формате JSON, поэтому добавлять express.json() не нужно.
На POST-запрос Nest отвечает статусом 201 Created — этот статус означает, что создан новый ресурс, а на все остальные методы отвечает статусом 200. @HttpCode(200) в методе изменил бы его; при создании оставь всё как есть.
Задание
ЛегкоPOST /tasksс{ "title": "Buy milk" }отвечает кодом 201 и возвращает новую задачу: новый номерid,titleиdone: false.GET /tasks/:idнаходит её после этого.- Отправь этот запрос, затем отправь
POST /tasksс{}и посмотри, что будет сохранено.
Попробуйте сами
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));
}
}
Все уроки раздела TypeScript и NestJS
1Основы Nest
Знакомство с NestПараметры маршрута