Una aplicación profesional suele tener más de un ambiente. Ambiente local, ambiente de desarrollo, ambiente de pruebas, producción, entre otros, dependiendo la necesidad del equipo y de la organización. Veamos cómo puedes administrar N cantidad de ambientes en NestJS.
Configuración dinámica del entorno
Configuremos la aplicación para intercambiar fácilmente entre diversos ambientes, cada uno con su propia configuración.
1. Archivo principal para manejo de ambientes
Crea un archivo llamado enviroments.ts (o el nombre que prefieras) que contendrá un objeto con una propiedad por cada ambiente que tenga tu aplicación.
Importa en el módulo principal de tu aplicación el archivo principal para manejo de ambientes y, a través de una única variable de entorno llamada NODE_ENV, elegirás qué configuración usar.
NODE_ENV es una variable de entorno propia de NodeJS y del framework Express que se encuentra preseteada en tu aplicación.
Finalmente, para iniciar tu aplicación basta con el comando NODE_ENV=test npm run start:dev o NODE_ENV=prod npm run start:dev para configurar la variable de entorno principal NODE_ENV y escoger qué configuración utilizar.
5. Utilizando las variables de entorno
Puedes utilizar las variables de entorno en tu aplicación de dos maneras. Con el objeto global de NodeJS llamado process:
process.env.DATABASE_NAMEprocess.env.API_KEY
O puedes usar estas variables a través del servicio ConfigService proveniente de @nestjs/config.
import{ConfigService}from'@nestjs/config';@Injectable()exportclassAppService{constructor(private config:ConfigService){}getEnvs():string{const apiKey =this.config.get<string>('API_KEY');const name =this.config.get('DATABASE_NAME');return`Envs: ${apiKey}${name}`;}}
De este modo, configura de la mejor manera que necesites para tu aplicación el manejo de múltiples ambientes, cada uno con su propia configuración.
Cuadro de código para la configuración de ambientes