Configuración de variables de entorno para que Node las recupere

Resuelto user1107173 asked hace 10 años • 20 respuestas

Estoy intentando seguir un tutorial y dice:

Hay algunas formas de cargar credenciales.

  1. Cargado desde variables de entorno,
  2. Cargado desde un archivo JSON en el disco,

Las claves deben ser las siguientes:

USER_ID, USER_KEY

...Esto significa que si configura correctamente las variables de entorno, no necesita administrar las credenciales en su aplicación en absoluto.

Según algunas búsquedas en Google, parece que necesito configurar las variables en process.env? ¿Cómo y dónde configuro estas credenciales? Ejemplo por favor.

user1107173 avatar Mar 11 '14 05:03 user1107173
Aceptado

Las variables de entorno (en este caso) se utilizan para pasar credenciales a su aplicación. USER_IDy USER_KEYse puede acceder a ambos desde process.env.USER_IDy process.env.USER_KEYrespectivamente. No es necesario editarlos, simplemente acceder a su contenido.

Parece que simplemente le están dando la opción de cargar su archivo USER_IDo USER_KEYdesde process.envalgún archivo específico en el disco.

Ahora, la magia ocurre cuando ejecutas la aplicación.

USER_ID=239482 USER_KEY=foobar node app.js

Eso pasará la identificación de usuario 239482y la clave de usuario como foobar. Esto es adecuado para pruebas; sin embargo, para producción, probablemente deberá configurar algunos scripts bash para exportar variables.

SamT avatar Mar 10 '2014 22:03 SamT

Recomiendo encarecidamente investigar el paquete dotenv.

https://github.com/motdotla/dotenv

Es algo similar a la biblioteca sugerida en la respuesta de @Benxamin, pero es mucho más limpia y no requiere ningún script bash. También vale la pena señalar que la base del código es popular y está bien mantenida.

Básicamente necesitas un archivo .env (que recomiendo encarecidamente ignorar en tu git/mercurial/etc):

FOO=bar
BAZ=bob

Luego, en el archivo de entrada de su solicitud, coloque la siguiente línea lo antes posible:

require('dotenv').config();

Auge. Hecho. 'process.env' ahora contendrá las variables anteriores:

console.log(process.env.FOO);
// bar

El archivo '.env' no es necesario, por lo que no necesita preocuparse de que su aplicación se caiga en su ausencia.

ctrlplusb avatar Dec 08 '2015 11:12 ctrlplusb