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

Cómo usar módulos en NestJS

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.

¿Qué es un módulo en NestJS?

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.

Estructura básica de un módulo

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.

Ejemplo básico de un módulo en NestJS

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).

Ejemplos prácticos

Creación de un módulo con el CLI de NestJS

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.

Importar un módulo en otro

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 {}

Referencia oficial

Para más información, puedes consultar la documentación oficial de NestJS.

Compartir:
Creado por:
Author photo

Jorge García

Fullstack developer