Menu
CoddyTech

פרמטרים של שאילתה

חלק מהיחידה TypeScript ו-NestJS במסלול ה-Node.js של Coddy. שיעור 5 מתוך 24.

לקוח שרוצה רק את המשימות הפתוחות לא אמור להידרש להוריד כל משימה ולסנן אותן בעצמו. מחרוזת השאילתה, החלק שאחרי ?, מכילה אפשרויות כאלה.

@Get()
findAll(@Query('author') author?: string) {
    if (!author) {
        return this.books;
    }
    return this.books.filter((book) => book.author === author);
}

@Query('author') קוראת את ?author=Le%20Guin, או מחזירה undefined כשהבקשה לא כוללת אותה.

טיפוסי TypeScript מוסרים כשהקוד רץ: Node מריץ את JavaScript שנותר אחרי הסרת הטיפוסים, ושום דבר לא בודק אותם. כתוב inStock?: boolean, ו-Nest עדיין יעביר לך את המחרוזת 'false', שהיא ערך אמת. הטיפוסים מתעדים את הקוד שלך ועוזרים לעורך; השווה ערכי שאילתה כטקסט.

challenge icon

אתגר

קל
  • GET /tasks?done=true מחזיר רק את המשימות שהושלמו; GET /tasks?done=false מחזיר רק את המשימות הפתוחות.
  • בלי done, GET /tasks מחזיר את כל המשימות.
  • שלחו GET /tasks?done=false, ואז GET /tasks?done=true.

נסו בעצמכם

import { Controller, Get, Param } 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;
    }

    @Get(':id')
    findOne(@Param('id') id: string): Task | undefined {
        return this.tasks.find((task) => task.id === Number(id));
    }
}
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה TypeScript ו-NestJS

תרגלו בעצמכם: Express אונליין