node.js - dotenv - node js set environment variable
Configuración de las variables process.env usando EXPORT mientras se ejecuta el nodo con sudo (2)
Estoy usando node.js en EC2
yo tecleo
EXPORT PORT=80
en el terminal, y veo que lo guarda correctamente cuando escribo EXPORT
Pero cuando ejecuto mi aplicación node.js con lo siguiente:
...
console.log(process.env);
...
PORT no aparece en el objeto cuando lo estoy ejecutando con sudo:
sudo node app.js
¿Cómo configuro el PORT para que pueda acceder a él desde el objeto process.env mientras ejecuto el nodo con sudo?
Para establecer la variable process.env usa el siguiente código:
sudo PORT=80 node server.js
Por supuesto, puede establecer múltiples variables process.env :
sudo PORT=80 HOST=localhost node server.js
Normalmente, la EXPORT debería funcionar también. Pero sudo crea sus propios entornos y luego inicia su programa como root . Por lo tanto, debe agregar PORT al entorno de sudo o forzarlo a preservar su propio entorno.
Para cambiar el entorno de sudo debes modificar /root/.profile .
Para forzarlo a preservar su propio entorno use la tecla -E :
sudo -E node app.js
Si desea configurar esto permanentemente:
- Abre tu perfil bash
vim ~/.bash_profile - Agregue la variable de entorno al archivo de
export PORT=80 - Abre el archivo de configuración de sudoers
sudo visudo - Agregue la siguiente línea al archivo tal como está
Defaults env_keep +="PORT"
Ahora, cuando ejecute sudo node app.js , debería funcionar como se desea, con el puerto configurado en 80.