Un archivo .env, o de entorno, es uno de los archivos esenciales en un proyecto de programación estructurado y seguro. Es posible que te hayas encontrado con recomendaciones para almacenar la configuración de tu aplicación en variables de entorno. Un archivo .env puede ayudar a facilitar el proceso.

Pero, ¿cómo funciona un archivo .env? ¿Y cómo puedes crear uno y leerlo en Python, Express.js o Go? Lo descubrirás en este artículo.

¿Qué es un archivo .env?

El archivo .env contiene los detalles de configuración de tu aplicación en variables de entorno. El archivo te ayuda a abstraer esta información para evitar exponerla en tu código.

El Sitio de Dotenv lo describe así:

… la forma probada de asegurar las variables de entorno a cualquier escala. Almacena los secretos y la configuración de la aplicación de forma segura con un único archivo.

No hay límite a lo que puede haber en el archivo .env. Decidir lo que incluyes depende de la configuración que sea relevante para tu aplicación. Los detalles podrían incluir claves de API, URLs, URIs de bases de datos y tokens de acceso.

Cómo leer datos del archivo .env

Tu lenguaje de programación no leerá el contenido de un archivo .env automáticamente. Tendrás que utilizar una biblioteca para leer y analizar el archivo. Aquí se explica cómo hacerlo en Python, Node.js (Express) y Go.

Cómo leer el archivo .env en Python

Necesitas algunas bibliotecas para procesar las variables .env en Python. Entre ellas se encuentran la os biblioteca y la dotenv paquete de terceros.

El cargar_dotenv de dotenv proporciona la funcionalidad de leer datos de un archivo .env.

Para empezar, crea un entorno virtual de Python e instala el dotenv paquete con pip:

pip install dotenv

No necesitas instalar el paquete os ya que está integrado en Python.

A continuación, crea un archivo llamado .env en la raíz de tu proyecto y añade algunos valores de configuración. Por ejemplo:

App_password = idStringSecret
Python_version = Python 3.9.7

Ahora, en tu archivo Python

from dotenv import load_dotenv
import os

# Use load_env to trace the path of .env:
load_dotenv('.env')

# Get the values of the variables from .env using the os library:
password = os.environ.get("App_password")
languageVersion = os.environ.get("Python_version")

print(password)
# idStringSecret
print(languageVersion)
# Python 3.9.7


Lectura del archivo .env en Node.js (Express)

El proceso de carga de variables de entorno en Express.js es ligeramente diferente al de Python.

En primer lugar, tendrás que instalar el programa dotenv biblioteca usando npm. Esta sección asume que has iniciado un proyecto node.js y que ya estás ejecutando un servidor.

En el terminal de tu proyecto raíz:

npm install dotenv --save

Ahora, crea un .env en la raíz de tu proyecto. Asume que las siguientes variables están en el archivo:

App_password = idStringSecret
Node_version = v14.17.5

Para leer las variables de .env, escribe el siguiente código en tu JavaScript:

const dotenv = require('dotenv')

dotenv.config()

password = process.env.App_password
nodeVersion = process.env.Node_version

console.log(password)
// idStringSecret

console.log(nodeVersion)
// v14.17.5


Cómo leer el archivo .env en Go

Go también requiere la instalación de un paquete para leer las variables del archivo de entorno godotenv.

Utilizas esta biblioteca para indicar a Go la ruta del archivo .env. A continuación, utilizarás el sistema integrado de Go os para leer los datos.

Abre la línea de comandos en la carpeta raíz de tu proyecto y ejecuta el siguiente comando para instalar la clase Go godotenv biblioteca:

go get -d github.com/joho/godotenv/cmd/godotenv

Supón que el archivo .env de tu proyecto Go tiene las siguientes variables

App_password = idStringSecret
Go_version = go1.17.5

He aquí cómo leer las variables de ese archivo de entorno:

package main
import (
"fmt"
"os"
"github.com/joho/godotenv"
)

func main() {
// Load the .env file:
godotenv.Load(".env")

// The the variables using os package:
password := os.Getenv("App_password")
goVersion := os.Getenv("Go_version")

fmt.Println(password)
// idStringSecret

fmt.Println(goVersion)
// go1.17.5
}


Eso es todo. Ahora puedes utilizar el archivo .env para mantener las configuraciones de entorno de las aplicaciones que construyas con Go, Python o Express.

Oculta los mejores secretos y mantén limpio tu código con .env

El archivo .env contiene muchos detalles sobre tu aplicación. Estos pueden incluir información sensible que no quieres exponer en tu código. Por ello, debes evitar enviar el archivo .env a un sistema de control de versiones como GitHub.

Un archivo .env te ayuda a escribir un código más limpio, ya que no necesitas duplicar cadenas largas ni contaminar el espacio de nombres global. Puedes ponerlas en el archivo de variables de entorno y procesarlas como se indica.

Y como has visto, crear y leer variables desde un archivo .env es un juego de niños, independientemente del lenguaje de programación.