Menu
CoddyTech

ルートパラメータ

CoddyのNode.jsジャーニー「TypeScriptとNestJS」セクションの一部。レッスン 2/17。

クライアントが必要とするのは、リスト全体ではなく、特定のタスクであることがよくあります。パスにはパラメーターを含められます。これは、リクエストごとに変わる部分です。

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

:isbnはパスのその位置にある任意の値に一致するため、GET /books/978はこのメソッドに到達します。@Param('isbn')はその値をメソッドに渡します。値は常にテキストです。/books/42の場合、文字列'42'が渡され、数値の42が渡されることはありません。

名前を省略すると、@Param()は値ではなく、すべてのパラメーターを含むオブジェクト{ isbn: '978' }を返します。

challenge icon

チャレンジ

簡単
  • GET /tasks/:idを追加します。このエンドポイントは、そのIDのタスクを返します。
  • GET /tasks/2を送信し、次にGET /tasks/99を送信して、タスクが存在しないIDに対して何が返されるかを確認します。

自分で試してみよう

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;
    }
}

TypeScriptとNestJSのすべてのレッスン