Los módulos en NestJS son una herramienta clave para organizar el código de una aplicación. Permiten agrupar componentes relacionados como controladores, servicios y proveedores, facilitando la gestión y reutilización del código.
Un módulo en NestJS es una clase decorada con @Module
que actúa como contenedor lógico para un conjunto de funcionalidades. Cada aplicación NestJS tiene al menos un módulo raíz, pero se pueden crear múltiples módulos para dividir la lógica de la aplicación en secciones más pequeñas y manejables.
Un módulo se define utilizando el decorador @Module
, que acepta un objeto con las siguientes propiedades:
Propiedad | Descripción |
---|---|
imports
|
Lista de módulos que se importan y cuyos componentes estarán disponibles en este módulo. |
controllers
|
Controladores asociados al módulo, que manejan las solicitudes entrantes. |
providers
|
Servicios o proveedores que serán utilizados dentro del módulo. |
exports
|
Proveedores que este módulo hace disponibles para otros módulos. |
import { Module } from '@nestjs/common';
import { UserController } from './user.controller';
import { UserService } from './user.service';
@Module({
imports: [],
controllers: [UserController],
providers: [UserService],
exports: [UserService],
})
export class UserModule {}
En este ejemplo, el módulo UserModule
agrupa un controlador (UserController
) y un servicio (UserService
).
Para generar un módulo rápidamente, puedes usar el CLI de NestJS:
nest generate module nombreModulo
Esto crea una carpeta con un archivo de módulo básico configurado automáticamente.
Si un módulo necesita utilizar servicios o controladores de otro módulo, se debe importar de la siguiente manera:
import { Module } from '@nestjs/common';
import { UserModule } from './user/user.module';
@Module({
imports: [UserModule],
})
export class AppModule {}
Para más información, puedes consultar la documentación oficial de NestJS.
Jorge García
Fullstack developer