Menu
CoddyTech

Parameter Rute

Termasuk bagian TypeScript dan NestJS dalam perjalanan Node.js di Coddy. Pelajaran 2 dari 17.

Client sering kali membutuhkan satu tugas, bukan seluruh list. Path dapat memuat parameter: bagian yang berubah dari satu permintaan ke permintaan berikutnya.

@Get(':isbn')
findOne(@Param('isbn') isbn: string) {
    return this.books.find((book) => book.isbn === isbn);
}

:isbn cocok dengan nilai apa pun di bagian path tersebut, jadi GET /books/978 akan mengarah ke method ini. @Param('isbn') meneruskan nilai itu ke method. Nilainya selalu berupa teks: /books/42 memberikan string '42', bukan angka 42.

Jika nama parameter dihilangkan, @Param() memberikan object yang berisi semua parameter, { isbn: '978' }, bukan nilainya saja.

challenge icon

Tantangan

Mudah
  • Tambahkan GET /tasks/:id: endpoint ini mengembalikan tugas dengan id tersebut.
  • Kirim GET /tasks/2, lalu GET /tasks/99 dan lihat respons untuk id yang tidak memiliki tugas.

Coba sendiri

import { Controller, Get } 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(): Task[] {
        return this.tasks;
    }
}

Semua pelajaran di TypeScript dan NestJS

Latihan sendiri: Playground Express