
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.