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.