שלום, 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 עושה זאת.
אתגר
קל- הוסיפו מתודה ל־
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.
}
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.