Una variable de entorno proporciona información sobre el entorno en el que se ejecuta un proceso. Configuran puertos de servidor y conexiones de base de datos, ocultan datos confidenciales como claves API y mucho más.

La forma en que NestJS lee las variables de entorno difiere del paquete dotenv estándar de NodeJS.

El módulo de configuración de NestJS le permite administrar sus variables de entorno en solo unos pocos pasos.

Paso 1: Instalación de dependencias

NestJS proporciona un dedicado @nestjs/config paquete que utiliza el dotenv paquete bajo el capó. Este paquete de dependencia cero carga variables de entorno desde un .env archivo en proceso.env. El objeto process.env es una variable global inyectada en tiempo de ejecución para el uso de su aplicación.

Instale el paquete de configuración de NestJS ejecutando:

instalar npm @nestjs/config

El paquete de configuración de NestJS funciona exponiendo un módulo de configuración y un servicio de configuración a la aplicación. El módulo de configuración especifica el

instagram viewer
.env presentar la solicitud de lectura. Al mismo tiempo, el servicio de configuración expone la información dentro del .env archivo al resto de la aplicación.

Paso 2: Creación de archivos ENV

Almacenar variables de entorno en un archivo le permite acceder a ellos fácilmente desde cualquier idioma, a través de diferentes sistemas operativos. Puede controlar la versión de estos .env archivos, por lo que aumentan la portabilidad del proyecto y pueden aliviar los problemas de depuración.

El enfoque de NestJS para crear archivos .env difiere de la recomendación oficial de dotenv. Según la documentación de dotenv, no debe crear más de un archivo .env en una aplicación. NestJS le permite crear múltiples archivos .env con diferentes nombres.

Como buena práctica, siempre debe crear archivos .env en el directorio raíz de su proyecto e incluirlos en su .gitignore expediente.

No hay una forma especial de crear un archivo .env, simplemente créelos y edítelos con su editor de texto normal, pero deben comenzar con .env. Por ejemplo, .env.desarrollo.

Paso 3: configurar el módulo de configuración

Siga el paso a continuación para configurar su módulo de configuración globalmente y especifique el .env caminos:

  1. En el módulo raíz de su proyecto (app.modue.ts) archivo, importar ConfigModule de @nestjs/config.
  2. Agregar ConfigModule para usted importaciones matriz y llame al para raíz método en él.
  3. Pasar un objeto de configuración al para raíz método, con un esGlobal propiedad a verdadero. Esta opción comparte la configuración a través de los otros módulos de su aplicación, lo que significa que no tendrá que configurarla más de una vez.
  4. Especifica tu envFilePath en su objeto de configuración. Esta propiedad puede ser una cadena (si tiene una .env archivo) o una matriz que contiene todos sus .env archivos y le dirá al módulo de configuración qué archivos buscar.
// aplicación.módulo.ts
@Módulo({
importaciones: [
ConfigModule.forRoot({
esGlobal: verdadero,
envFilePath: 'Nombre(s) de su(s) archivo(s) .env',
}),

Paso 4: uso del servicio de configuración para leer variables de entorno

Para acceder a los valores de configuración comience importando Servicio de configuración de @nestjs/config. inyectarlo en el constructor de clases al declarar un privado variable y asignación Servicio de configuración como su tipo.

Por ejemplo:

constructor(configuración privada: ConfigService) {}

Para acceder a una variable, llame al obtener método en el Servicio de configuración en tu privado variable. Pásele el tipo de datos que necesita como genérico y el nombre de la variable de entorno a la que desea acceder.

Por ejemplo:

const envVar = this.config.get<cuerda>('ENV_VALUE');

los Servicio de configuración busca un valor con el nombre “ENV_VALUE” y devuelve su valor.

Tenga en cuenta que si dos .env archivos contienen el mismo nombre de propiedad, el primero especificado en el envFilePath tendrá prioridad.

La importancia de las variables ambientales

Las variables de entorno son una parte esencial de un programa, particularmente en aplicaciones más complejas. Le permiten controlar la configuración de su programa a través de un mecanismo común y fácil de entender.

Puede utilizar variables de entorno para controlar todos los aspectos de la configuración. Desde diferentes configuraciones de bases de datos hasta datos confidenciales como claves API y credenciales, le permiten cambiar la configuración sin tocar el código fuente subyacente.