Menu
CoddyTech

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.

challenge icon

Tantangan

Mudah
  • POST /tasks dengan { "title": "Buy milk" } memberikan respons 201 dengan task baru: angka id yang baru, title, dan done: false.
  • GET /tasks/:id menemukannya setelah itu.
  • Kirim request itu, lalu kirim POST /tasks dengan {} 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