node example dotenv node.js environment-variables

node.js - example - node js process env



nodo dotenv no está funcionando (12)

Estoy tratando de usar el módulo dotenv de nodo y no está funcionando para mí. Tengo un archivo en config / config.js con el siguiente contenido:

''use strict''; var dotenv = require(''dotenv''); dotenv.load(); console.log(''config'');

También tengo un archivo llamado .env en la raíz de la carpeta de mi aplicación. También tengo variables de entorno como TWILIO_ACCOUNT_SID. Este es el proceso que paso al intentar usar las variables de entorno en una función determinada:

Omes-MacBook-Pro:sidetime ome$ node > require(''./config/config.js''); config {} > process.env.TWILIO_ACCOUNT_SID undefined

Definí el TWILIO_ACCOUNT_SID en mi archivo .env, pero tan pronto como intento generar el valor en mi consola, me aparece el error de que no está definido. Si tiene alguna sugerencia sobre cómo solucionar este problema, será muy apreciado por mí.


Asegúrese de configurar cwd en la configuración de pm2 en el directorio correcto para cualquier llamada a dotenv.config ().

Ejemplo: Su archivo index.js está en / app / src, su archivo .env está en / app. Su archivo index.js tiene esto

dotenv.config ({ruta: "../.env"});

Su configuración json de pm2 debe tener esto: "cwd": "/ app / src", "script": "index.js"

También puede usar dotenv.config ({path: path.join (__ dirname, "../.env")}); para evitar el problema de CWD. Aún tendrá un problema si mueve el archivo .env o el archivo index.js en relación entre sí.


Asegúrese de que las variables no estén ya establecidas. Dotenv no los anulará.

Si las variables están configuradas entonces tendrás que eliminarlas. En PowerShell puedes usar el siguiente comando, como se menciona aquí :

Remove-Item Env:/MyTestVariable


El archivo ''.env'' debe estar en el directorio raíz de su archivo de servidor js de nodo (server.js o para mí).

Si colocó el archivo ''.env'' en la raíz de su proyecto, no funcionará. Mi error fue que tengo el archivo server.js anidado en una carpeta llamada ''controlador''.

Así que tuve que arreglarlo colocando el archivo .env en el mismo directorio que el archivo server.js.


En mi caso, cada vez que intento obtener un archivo .env de formulario clave usando process.env.MY_KEY , devuelve undefined

Sufrí este problema durante dos horas solo porque nombré el archivo algo así como keys.env , no se considera un archivo .env

así que aquí está la troubleshooting list

  1. asegúrese de que el nombre del archivo sea ".env" (creo que ".env.test" es aceptable)

  2. asegúrese de que lo está solicitando Lo As early as possible en su aplicación utilizando esta declaración require(''dotenv'').config();

  3. asegúrese de que el archivo .env esté in the root directory of your project .

  4. asegúrese de que está siguiendo las file writing rules del file writing rules como DB_HOST=localhost , ya que no es necesario envolverlas con comillas dobles o comillas simples

También puede consultar la documentación del paquete en el sitio npm aquí https://www.npmjs.com/package/dotenv

Espero que esto te ahorre tiempo


Mi problema era estúpido. Creé el .env en un editor de texto, y cuando lo guardé, se guardó como

''.env.txt''

que sólo fue visible después de que hice una

''ls -a''

En la terminal y vio el nombre del archivo.

Un rápido:

mv .env.txt .env

Y yo estaba en el negocio


No puse mis variables de entorno en el formato correcto como estaba en la documentación del módulo dotenv, por ejemplo, estaba haciendo la exportación TWILIO_CALLER_ID = "+ wwehehe", por lo que el módulo dotenv no estaba analizando mi archivo correctamente. Cuando me di cuenta de que eliminé la palabra clave de exportación de las declaraciones y todo funcionó bien.


Resuelvo usando

require(''dotenv'').config({path: __dirname + ''/.env''})

o usar ruta absoluta:

C://asd//auhsd//.env

Si no encuentra el archivo .env lo deja indefinido.


Tenía el mismo problema recientemente. Por favor revise su archivo .env y haga esto:

key=value

en lugar de

key:value


Tenía el mismo problema. Utilicé dotenv-webpack y necesito definir

plugins: [ new Dotenv() ]

Tanto en la producción de paquetes web como en los archivos base de paquetes web (uso la combinación de paquetes web). Si no se definió en ambos archivos, entonces no funcionó.


Tenga cuidado de que también ejecute su secuencia de comandos Node desde la carpeta ROOT .

Por ejemplo, estaba usando un script de prueba en una subcarpeta llamada ./bin/test.js . Llamándolo como: node ./bin/test.js funcionó totalmente bien. Llamándolo desde la subcarpeta como:

$ pwd ./bin $ node ./test.js

hace que dotenv no encuentre mi archivo ./.env .


Tuve el mismo problema e intenté 4 horas para encontrar la falla. En mi caso, era extraño.

Cuando probé "node app.js", funcionó. Cuando quise que un demonio lo iniciara, no funcionó.

¿Cómo resolví mi problema? Yo reemplacé

var dotenv = require(''dotenv''); dotenv.load();

con:

var dotenv = require(''dotenv'').config({path: path.join(__dirname, ''.env'')})


Yo tuve el mismo problema. Me di cuenta de que mi archivo estaba codificado de alguna manera en UCS-2 BE BOM . La conversión de mi archivo .env a UTF-8 solucionó (puede hacerlo fácilmente usando Notepad ++, por ejemplo).