Volver a la página principal
viernes 3 enero 2025
9

Cómo Agrupar Rutas por Módulos en NestJS

Agrupar rutas por módulos en NestJS es una práctica esencial para mantener una arquitectura organizada y escalable. Los módulos permiten dividir la aplicación en unidades funcionales, donde cada módulo contiene sus propios controladores, servicios y otros componentes.

Módulos en NestJS

En NestJS, un módulo es una clase decorada con @Module que organiza un conjunto de funcionalidades relacionadas. Cada módulo puede contener controladores para definir rutas específicas.

Pasos para Agrupar Rutas por Módulos

1. Crear un Módulo

Usa el CLI de NestJS para generar un módulo. Esto creará una estructura inicial para agrupar rutas y servicios relacionados.

nest generate module users

Esto genera un archivo users.module.ts:

import { Module } from '@nestjs/common';
   import { UsersController } from './users.controller';
   import { UsersService } from './users.service';

   @Module({
     controllers: [UsersController],
     providers: [UsersService],
   })
   export class UsersModule {}

2. Crear un Controlador dentro del Módulo

Genera un controlador para definir las rutas asociadas al módulo:

nest generate controller users

Esto genera un archivo users.controller.ts donde puedes definir rutas:

import { Controller, Get } from '@nestjs/common';

   @Controller('users') // Prefijo de las rutas del módulo
   export class UsersController {
     @Get()
     findAll(): string {
       return 'Lista de usuarios';
     }
   }

3. Registrar el Módulo en el Módulo Raíz

Incluye el módulo en app.module.ts para que NestJS lo reconozca:

import { Module } from '@nestjs/common';
   import { UsersModule } from './users/users.module';

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

Ventajas de Agrupar Rutas por Módulos

  • Organización: Los controladores, servicios y otros recursos relacionados se mantienen en un solo módulo.
  • Reutilización: Puedes reutilizar módulos en diferentes aplicaciones.
  • Escalabilidad: Facilita la adición de nuevas funcionalidades sin afectar otras partes de la aplicación.

Ejemplo de una Aplicación Modular

Módulo de Productos (products)

1. Crear módulo y controlador:

nest generate module products
   nest generate controller products

2. Definir rutas en products.controller.ts:

import { Controller, Get } from '@nestjs/common';

   @Controller('products')
   export class ProductsController {
     @Get()
     findAll(): string {
       return 'Lista de productos';
     }
   }

3. Registrar el módulo en app.module.ts:

import { ProductsModule } from './products/products.module';

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

Referencia Oficial

Consulta la documentación oficial de módulos en NestJS para más detalles.

Compartir:
Creado por:
Author photo

Jorge García

Fullstack developer