Saltar al contenido

Definición de un array como una variable de entorno en node.js

Si encuentras alguna parte que te causa duda puedes dejarlo en los comentarios y haremos todo lo posible de ayudarte tan rápido como podamos.

Solución:

En este escenario, no parece que un env var sea el camino a seguir.

Por lo general, querrá usar variables de entorno para proporcionar a su aplicación información sobre su entorno o para personalizar su comportamiento: a qué base de datos conectarse, qué tokens de autenticación usar, cuántos trabajadores bifurcar, si almacenar o no en caché las vistas renderizadas, etc.

Su ejemplo se parece más a un modelo, por lo que algo como una base de datos probablemente se ajuste mejor.

Dicho esto, no hay contexto sobre lo que hace su aplicación o cómo usa festivals, por lo que si resulta que debe usar un env var, entonces tiene varias opciones. Lo más simple es probablemente usar un espacio o delimitado por comas string:

heroku config:set FESTIVALS="bonnaroo lollapalooza coachella"

después:

var festivals = process.env.FESTIVALS.split(' ');

divulgación: soy el propietario de la plataforma Node.js en Heroku

Su ejemplo parece más una enumeración que una configuración array. Recomiendo encarecidamente usar un modelo para guardarlo.

En caso de que te refieras a lo anterior array solo como ejemplo y tienen más curiosidad acerca de cómo se pueden almacenar matrices en un archivo env:

Respuesta corta:
No puedes.

Respuesta larga:
Las variables .env son cadenas
Entonces algo como

BOOLEAN = true

será tratado como

BOOLEAN = "true"

y así será

FESTIVALS = ['bonnaroo', 'lollapalooza', 'coachella'] 

ser tratado como

FESTIVALS = "['bonnaroo', 'lollapalooza', 'coachella']"

Solución:

Puedes guardar el array como un delimitado string en .env

FESTIVALS = "bonnaroo, lollapalooza, coachella"

En su archivo js puede convertirlo en un array usando

var festivals = process.env.FESTIVALS.split(",");

Probablemente depende de tus datos. Por ejemplo, si ninguno de los valores contendrá comas, podría convertirlo en una lista separada por comas y luego dividirla en una coma (p. ej., comenzar su aplicación con FOO=bar,baz,quux node myapp.js entonces haciendo var foo = process.env.FOO.split(',') en myapp.js).

De lo contrario, si sus valores de entrada pueden ser más complejos, JSON probablemente será el más fácil de trabajar.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

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