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.