variable node dotenv define custom node.js sudo

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:

  1. Abre tu perfil bash vim ~/.bash_profile
  2. Agregue la variable de entorno al archivo de export PORT=80
  3. Abre el archivo de configuración de sudoers sudo visudo
  4. 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.