פרמטרים של נתיב
חלק מהיחידה 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' }, במקום את הערך.
אתגר
קל- הוסיפו את
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;
}
}