Membuat Tugas
Termasuk bagian TypeScript dan NestJS dalam perjalanan Node.js di Coddy. Pelajaran 4 dari 17.
Client yang membuat task mengirimkannya sebagai JSON di body request, dan perlu menerima kembali task yang tersimpan.
@Post()
create(@Body() review: { stars: number }) {
this.reviews.push(review);
return review;
}@Post() memetakan POST pada path controller ke method, dan @Body() memberikan JSON yang sudah diurai. Nest membaca body JSON secara otomatis, jadi tidak perlu menambahkan express.json().
Nest membalas POST dengan 201 Created, status yang menandakan resource baru telah dibuat, dan method lainnya dengan 200. @HttpCode(200) pada method akan mengubahnya. Untuk membuat resource, biarkan seperti ini.
Tantangan
MudahPOST /tasksdengan{ "title": "Buy milk" }memberikan respons 201 dengan task baru: angkaidyang baru,title, dandone: false.GET /tasks/:idmenemukannya setelah itu.- Kirim request itu, lalu kirim
POST /tasksdengan{}dan lihat apa yang tersimpan.
Coba sendiri
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));
}
}
Semua pelajaran di TypeScript dan NestJS
Latihan sendiri: Playground Express