Introducción a las variables de entorno en NodeJS


Share on FacebookTweet about this on TwitterShare on LinkedInEmail this to someoneShare on Google+

Para resolver algunas situaciones con programas que deberían funcionar en diferentes ambientes, usaremos las denominadas variables de entorno que podemos utilizar al ejecutar un script Node a través de la biblioteca básica de NodeJS, como explicamos a continuación. Este recurso es muy fácil de utilizar y se aplica en multitud de ocasiones al poner en marcha un proyecto web.

¿Para que sirven las variables de entorno?

Las variables de entorno se utilizan para definir parámetros básicos en la configuración de los programas, y que estos se ejecuten en diferentes ambientes sin tener que editar el código fuente del script. Su uso es habitual porque los programas se pueden ejecutar en diferentes ordenadores. Por ejemplo, en el desarrollo de un programa podemos estar utilizando unas configuraciones de entorno y que estas cambien una vez finalizado.

Entre los valores más habituales que pueden cambiar cuando tenemos un programa en local y en el servidor encontramos, por ejemplo, el puerto donde escucha un servidor web, el servidor de base de datos con el usuario y contraseña para la conexión, llaves de APIs, etc.  Los valores deberemos definirlos al ejecutar el programa, para que al ejecutar los scripts recojan los valores necesarios para funcionar en cualquier ambiente.

Cómo leer variables de entorno en un script NodeJS

Con el objeto process, disfrutaremos del acceso a las variables de entorno de una manera asequible. Usaremos la propiedad env y, a continuación, el nombre de la variable a la que necesitamos acceder.

En este ejemplo a la variable de entorno, a la que llamamos “PORT”, se accedería de este modo:

process.env.PORT

El acceso a las propiedades de los objetos es similar a cómo lo hacemos en los arrays. Es muy útil cuando el nombre de la variable de entorno está en una cadena. Podemos escribirlo así:

process.env['PORT']

Si no se han definido las variables de entorno, podemos asignar a nuestro programa unos valores predeterminados. Algo así:

var puerto;
 if(process.env.PORT) {
 puerto = process.env.PORT;
 } else {
 puerto = 3000;
 }

Si queremos resumir lo anterior en Javascript, podríamos hacerlo así:

var apiKey = process.env.APIKEY || 'HF33o9o-gl444olk-992ks';

Escribir los valores de las variables de entorno directamente sobre el propio objeto process.env, sería de utilidad para compartirlos en diferentes módulos de tu aplicación, ya que process.env es un objeto disponible de manera global.

process.env.DB_HOST = process.env.DB_HOST || 'host.db.app.example.com';

Con esto, si existe esa variable de entorno, no se modifica; pero si no existe, se crea con un valor predeterminado.

Definir las variables cuando se ejecuta un programa Node

Antes de ejecutar el programa, se asignan las variables necesarias invocando un script Node desde el terminal. Como es habitual, la aplicación Node se ejecuta así:

node simple-env

Ahora establecemos en el comando node las variables que queramos definir de esta manera:

PORT=3001 APIKEY=880088 node simple-env

En próximos posts continuaremos profundizando en la gestión de las variables de entorno. Si estás empezando con NodeJS, te recomendamos consultar los artículos ¿Qué tiene de bueno NodeJS?NodeJS, un polivalente framewok que podemos llevar muy fácilmente a Cloud o Primeros pasos con Express, unos de los frameworks de NodeJS más utilizados


Share on FacebookTweet about this on TwitterShare on LinkedInEmail this to someoneShare on Google+
0 comentarios

Dejar un comentario

¿Quieres unirte a la conversación?
Siéntete libre de contribuir

Deja un comentario

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