Menu
CoddyTech

פרמטרים של נתיב

חלק מהיחידה TypeScript ו-NestJS במסלול ה-Node.js של Coddy. שיעור 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: הוא מחזיר את המשימה עם המזהה הזה.
  • שלחו GET /tasks/2, ואז GET /tasks/99 ובדקו מה מוחזר עבור מזהה שאין לו משימה.

נסו בעצמכם

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