Introducción a las variables de entorno en NodeJS

3min

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 crear una web profesional.

Índice

¿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 nuestro artículo Cómo gestionar las variables de entorno con NodeJS  continuamos profundizando en este tema de un punto de vista más práctico. Si estás empezando con NodeJS, te recomendamos consultar los artículos ¿Qué tiene de bueno NodeJS? o Primeros pasos con Express, unos de los frameworks de NodeJS más utilizados

Fernán García de Zúñiga

Productos relacionados: