Tabla de Contenido
- Introducción a las Variables de Entorno
- Accediendo a Variables de Entorno con
process.env
- Usando el paquete
dotenv
- Mejores Prácticas de Seguridad
Introducción a las Variables de Entorno
Las variables de entorno son pares clave-valor dinámicos que proporcionan información de configuración a las aplicaciones. Se almacenan fuera del código de su aplicación, ofreciendo varias ventajas clave:
- Seguridad: Los datos sensibles, como las claves de API y las contraseñas, nunca deben codificarse de forma rígida. Las variables de entorno proporcionan una forma segura de gestionar estos secretos.
- Flexibilidad: Cambie fácilmente el comportamiento de la aplicación sin modificar la base de código. Esto es crucial para diferentes entornos de despliegue (desarrollo, ensayo, producción).
- Portabilidad: Adapte su aplicación a varios entornos ajustando las variables de entorno sin cambios de código.
Esta guía muestra cómo acceder a las variables de entorno en JavaScript, centrándose en entornos Node.js.
Accediendo a Variables de Entorno con process.env
Node.js proporciona acceso integrado a las variables de entorno a través del objeto process.env
. Este es el enfoque más común y recomendado para entornos de producción.
// Obtener una variable de entorno específica
const apiKey = process.env.API_KEY;
// Comprobar si existe una variable de entorno y proporcionar un valor predeterminado
const port = process.env.PORT || 3000;
// Acceder a varias variables
const dbConfig = {
host: process.env.DB_HOST,
user: process.env.DB_USER,
password: process.env.DB_PASSWORD,
database: process.env.DB_NAME
};
//Ejemplo de manejo de variables de entorno faltantes con un mensaje de error más descriptivo
if (!dbConfig.host) {
throw new Error("El host de la base de datos no está configurado. Por favor, configure la variable de entorno DB_HOST.");
}
console.log("Clave API:", apiKey);
console.log("Puerto:", port);
console.log("Configuración de la base de datos:", dbConfig);
Recuerde que la configuración de las variables de entorno es específica del sistema operativo. En Linux/macOS, use export
(por ejemplo, export API_KEY="su_clave_api"
); en Windows, use set
.
Usando el paquete dotenv
Para el desarrollo, el paquete dotenv
simplifica la gestión de las variables de entorno desde un archivo .env
. Esto mantiene la información sensible fuera de su sistema de control de versiones.
- Instalación:
npm install dotenv
- Archivo .env: Cree un archivo
.env
(¡añádalo a su.gitignore
!) en el directorio raíz de su proyecto:
API_KEY=su_clave_api
DATABASE_URL=su_url_de_base_de_datos
PORT=3001
- Uso:
require('dotenv').config();
const apiKey = process.env.API_KEY;
const databaseUrl = process.env.DATABASE_URL;
const port = process.env.PORT;
console.log("Clave API:", apiKey);
console.log("URL de la base de datos:", databaseUrl);
console.log("Puerto:", port);
dotenv.config()
carga las variables de .env
en process.env
. Siempre dé prioridad a las variables de entorno del sistema sobre .env
para los despliegues de producción.
Mejores Prácticas de Seguridad
- Nunca codifique información sensible de forma rígida. Siempre use variables de entorno.
- Agregue
.env
a su.gitignore
. Evite confirmaciones accidentales de datos sensibles. - Use una solución de gestión de secretos para entornos de producción para almacenar y acceder de forma segura a datos sensibles.
- Valide y sanitize todas las variables de entorno antes de usarlas en su aplicación para evitar vulnerabilidades.
- Revise y actualice regularmente sus prácticas de seguridad.