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, который отвечает массивом tasks на запрос GET /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