Modulos

Agrupa elementos relacionados: controladores, servicios, proveedores, etc. Todo proyecto empieza por el módulo raíz: AppModule.

import { Module } from '@nestjs/common';
import { UserModule } from './user/user.module';

@Module({
  imports: [UserModule],
})
export class AppModule {}

Controladores

Se encargan de recibir las solicitudes HTTP (GET, POST, etc.) y devolver respuestas.

import { Controller, Get, Post, Body } from '@nestjs/common';
import { UserService } from './user.service';

@Controller('users')
export class UserController {
  constructor(private readonly userService: UserService) {}

  @Get()
  findAll() {
    return this.userService.getAllUsers();
  }

  @Post()
  create(@Body() userData: any) {
    return this.userService.createUser(userData);
  }
}

Servicios

Contienen la lógica de negocio y se inyectan en los controladores u otros servicios.

import { Injectable } from '@nestjs/common';

@Injectable()
export class UserService {
  private users = [];

  getAllUsers() {
    return this.users;
  }

  createUser(user: any) {
    this.users.push(user);
    return user;
  }
}