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