Menu
CoddyTech

שלום, Nest

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

ב-Express כל נתיב הוא פונקציה שרושמים באופן ידני. NestJS נותן לכל חלק של API מחלקה משלו, והדקורטורים אומרים ל-Nest מה עושה כל מחלקה.

@Controller('books')
export class BooksController {
    @Get()
    findAll() {
        return [{ title: 'Dune' }];
    }
}

בקר מטפל בבקשות עבור נתיב אחד. @Controller('books') ו-@Get() הם דקורטורים: תוויות ש-Nest קורא כשהאפליקציה מתחילה לפעול. יחד הם ממפים את findAll ל-GET /books, ו-Nest שולח את מה שהמתודה מחזירה כ-JSON עם סטטוס 200. מתודה ללא דקורטור לעולם לא נקראת.

מודול מציג את המחלקות ששייכות זו לזו. src/main.ts קורא ל-NestFactory.create(AppModule); AppModule מייבא את TasksModule, שמציג את TasksController. במחשב נייד היית מפעיל אותו באמצעות npm run start; כאן הכפתור Run עושה זאת.

challenge icon

אתגר

קל
  • הוסיפו מתודה ל־TasksController שעונה לבקשת GET /tasks באמצעות מערך tasks.
  • לחצו על הרצה ושלחו GET /tasks, ואז GET /task כדי לראות מה התשובה עבור נתיב ללא נתיב מוגדר.

נסו בעצמכם

import { Controller } 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 /tasks.
}
quiz iconבחנו את עצמכם

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

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