Menu
CoddyTech

Hola, Nest

Parte de la sección TypeScript y NestJS del Journey de Node.js de Coddy. Lección 1 de 17.

En Express, cada ruta es una función que registras manualmente. NestJS asigna a cada parte de una API su propia clase, y los decoradores le indican a Nest qué hace cada clase.

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

Un controlador responde a las solicitudes de una ruta. @Controller('books') y @Get() son decoradores: etiquetas que Nest lee cuando se inicia la aplicación. Juntos asignan findAll a GET /books, y Nest envía como JSON lo que devuelve el método, con el estado 200. Un método sin decorador nunca se llama.

Un módulo enumera las clases que pertenecen juntas. src/main.ts llama a NestFactory.create(AppModule); AppModule importa TasksModule, que enumera TasksController. En una laptop, lo iniciarías con npm run start; aquí lo hace Run.

challenge icon

Desafío

Fácil
  • Añade un método a TasksController que responda a GET /tasks con el arreglo tasks.
  • Pulsa Run y envía GET /tasks, después GET /task para ver qué responde una ruta sin una ruta definida.

Pruébalo tú mismo

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

    // Añade aquí un método que responda a GET /tasks con la lista.
}
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de TypeScript y NestJS