Pasos fáciles para generar un módulo de configuración en NestJS

Crear un módulo de configuración en NestJS para gestionar la configuración de la aplicación de forma eficiente y ordenada.

martes, 2 de diciembre de 2025 • 4 min de lectura • Equip Q2BSTUDIO

Crear un módulo de configuración en NestJS

Cuando empecé con NestJS no entendía bien módulos, interceptores, guards y otras técnicas avanzadas, así que construí aplicaciones inseguras y con malas prácticas. Con el tiempo aprendí qué patrones son realmente importantes para aplicaciones de nivel producción y ahora quiero compartir una forma sólida de gestionar la configuración con un módulo personalizado que carga y valida variables de entorno.

Preparación del proyecto: instala la CLI de Nest para acelerar el desarrollo con el comando npm install -g @nestjs/cli y crea un nuevo proyecto con nest new config-module-example. Si prefieres pnpm utiliza ese gestor; para este ejemplo instalaremos el paquete de configuración con pnpm i @nestjs/config.

Crear el módulo: como buena práctica crea una carpeta common para configuraciones, esquemas y utilidades no relacionadas con la lógica de negocio. Genera el módulo con nest g mo common/config. Dentro del módulo puedes usar el decorador Global para que el módulo sea accesible en toda la aplicación y renombrar la importación del módulo de configuración de Nest como NestConfigModule para evitar confusiones con tu propio módulo.

Configuración básica: configura envFilePath para que busque .env y un archivo por entorno cuando NODE_ENV esté definido, activa cache y exporta el módulo para usarlo como proveedor. Esto permite que, por ejemplo, la aplicación utilice .env por defecto o .env.NODE_ENV cuando corresponda.

Tipos de configuración: define tipos para mantener seguridad de tipos. Crea common/types/app.types.ts y declara AppConfig con propiedades como port de tipo number y nodeEnv con los valores development | production | test | staging. Mantener tipos claros facilita el trabajo con la configuración a lo largo del proyecto y reduce errores.

Registrar configuraciones: usa registerAs del paquete de configuración de Nest para registrar un namespace app y mapear variables de entorno a un objeto tipado AppConfig. Por ejemplo, parsea PORT a number y normaliza NODE_ENV a development | production | test | staging. Registrar el namespace permite obtener valores con nombres compuestos como app.port y app.nodeEnv de forma consistente.

Validación con Joi: para evitar cargar un .env corrupto es fundamental validar variables al inicio. Instala Joi con pnpm i joi y crea una validación que asegure que PORT es un número con valor por defecto 3000 y que NODE_ENV solo acepte development, production o test con un valor por defecto razonable. Pasar esta validación durante el arranque evita bugs en producción causados por valores inválidos.

Conectar todo: en el módulo de configuración pasa load con tu factory de app, validationSchema con el esquema de Joi, envFilePath para entornos y cache true. Esto hace que al inicializar Nest se carguen y validen las variables antes de que la aplicación comience a servir peticiones.

Probar la configuración: en main.ts recupera el ConfigService desde el contenedor de Nest y obtén app.port y app.nodeEnv para registrar logs de arranque. Crea un archivo .env con PORT=3000 y NODE_ENV=development y ejecuta pnpm run start:dev para verificar que la aplicación arranca y muestra los valores esperados.

Beneficios: un módulo de configuración personalizado aporta control, validación y seguridad. Las configuraciones tipadas y validadas con Joi detectan errores temprano y hacen la aplicación más robusta y mantenible, evitando los problemas que aparecen cuando la configuración crece y se comparte entre equipos.

En Q2BSTUDIO, empresa especializada en desarrollo de software y aplicaciones a medida, implementamos este tipo de prácticas en proyectos reales para garantizar calidad y escalabilidad. Si necesitas desarrollar una solución a medida, podemos ayudarte desde el diseño hasta la puesta en producción, integrando buenas prácticas de ciberseguridad y gestión de configuraciones. Consulta nuestros servicios de desarrollo de aplicaciones y software a medida en desarrollo de aplicaciones y software multiplataforma y descubre cómo aplicamos técnicas modernas en proyectos reales.

Además de software a medida ofrecemos soluciones en inteligencia artificial, ia para empresas y agentes IA para automatizar procesos y mejorar la toma de decisiones. Integramos servicios cloud aws y azure y capacidades de inteligencia de negocio como power bi para transformar datos en valor. Si te interesa explorar cómo la configuración robusta y la IA se combinan para aplicaciones seguras y escalables visita nuestra página de inteligencia artificial en servicios de inteligencia artificial.

Palabras clave: aplicaciones a medida, software a medida, inteligencia artificial, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio, ia para empresas, agentes IA, power bi. Estas prácticas ayudan a crear aplicaciones seguras, mantenibles y listas para producción.

Resumen final: crear un módulo de configuración en NestJS con carga por namespaces, validación con Joi y tipos definidos es una inversión que paga en estabilidad y seguridad. Si necesitas apoyo para implementar esta arquitectura en tu proyecto a medida, en Q2BSTUDIO combinamos experiencia en desarrollo, ciberseguridad y soluciones cloud para entregar resultados de alto impacto.

UNA PAUSA?

Juga una estona abans de marxar

ELS NOSTRES SERVEIS

Com et podem ajudar

Tens un projecte en ment?

Explica'ns la teva visió i la convertim en una solució de programari. Sigui quin sigui l'abast, fem realitat la teva idea.