Menu
CoddyTech

Olá, Nest

Parte da seção TypeScript e NestJS do Journey de Node.js da Coddy. Lição 1 de 17.

No Express, cada rota é uma função que você registra manualmente. O NestJS dá a cada parte de uma API sua própria classe, e os decoradores informam ao Nest o que cada classe faz.

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

Um controlador responde às requisições de um caminho. @Controller('books') e @Get() são decoradores: rótulos que o Nest lê quando o app inicia. Juntos, eles mapeiam findAll para GET /books, e o Nest envia o que o método retorna como JSON com status 200. Um método sem decorador nunca é chamado.

Um módulo lista as classes que pertencem ao mesmo conjunto. src/main.ts chama NestFactory.create(AppModule); AppModule importa TasksModule, que lista TasksController. Em um laptop, você iniciaria o app com npm run start; aqui, o botão Run faz isso.

challenge icon

Desafio

Fácil
  • Adicione um método a TasksController que responda a GET /tasks com o array tasks.
  • Clique em Executar e envie GET /tasks e, em seguida, GET /task para ver o que um caminho sem rota responde.

Experimente você mesmo

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 },
    ];

    // Adicione aqui um método que responda a GET /tasks com a lista.
}
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de TypeScript e NestJS