Bogotá, Colombia
hola@jairofernandez.me

Manejo de variables de entorno en Node.js

Blog personal

Cuando tenemos datos sensibles como cadenas de conexión, contraseñas, o datos de configuración para una aplicación inicie, es bastante complejo trabajar con más personas, ya que no queremos compartirlos, por ello es importante usar variables de entorno, por ejemplo:

# index.js
var express = require('express');
var app = express();

var port = 5000;

app.listen(port, function(){
    console.log(`server listen in port ${port}`);   
});

Sin embargo, el puerto 5000 puede estar ocupado en la máquina de otra persona que use este código, pero si la persona cambia el código y sube los cambios va a empezar a haber problemas con los otros miembros del equipo, esto aplica para las cadenas de conexión de desarrollo entre muchos otros datos sensibles, por ello podríamos reescribir este código de la siguiente manera.

# index.js
var express = require('express');
var app = express();

var port = process.env.PORT || '5000';

app.listen(port, function(){
    console.log(`server listen in port ${port}`);   
});

Podemos usar la variable “process.env”, https://nodejs.org/api/process.html

var port = process.env.PORT || '5000';

Para agregar variables personalizadas, crearemos un archivo “.env”, que “no debemos incluir en el control de código”,

# .env 
PORT=9000

Para poder distribuir nuestro archivo “.env” sin exponer información importante, se suele agregar el archivo con la extensión “.dist”

# .env.dist 
PORT=ColocaTuPuertoFavorito

Ahora, para que nuestro proyecto pueda hacer uso de nuestro archivo .env, podemos valernos de un paquete llamado “node-env-file” (enlace a la documentación).

npm install node-env-file --save

Agregaremos en nuestro archivo index.js

var env = require('node-env-file'); // .env file
env(__dirname + '/.env');

Entonces, nuestro archivo index.js, querdará así:

# index.js
var express = require('express');
var app = express();

var env = require('node-env-file'); // .env file
env(__dirname + '/.env');

var port = process.env.PORT || '5000';

app.listen(port, function(){
    console.log(`server listen in port ${port}`);   
});

A partir de este momento podemos acceder a las variables de entorno, lo que necesitemos a través de “proccess.env.MI_VARIABLE”.

 

Espero que les sea útil.

 

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.