Tengo un archivo .env en el archivo de la carpeta raíz
NODE_ENV=development NODE_HOST=localhost NODE_PORT=4000 NODE_HTTPS=false DB_HOST=localhost DB_USERNAME=user DB_PASSWORD=user Y el archivo server.js en la carpeta root/app/config/server.js . La primera línea del archivo server.js es
require('dotenv').config();
También intenté lo siguiente:
require('dotenv').config({path: '../.env'}) ;
require('dotenv').config({path: '../../.env'}) ;
Sin embargo, mi variable env no se carga cuando ejecuto el archivo server.js desde el símbolo del sistema
node root/app/config/server.js
Si uso Visual Studio y presiono F5 , ¡se carga!
No estoy seguro de lo que estoy haciendo mal, lo que me estoy perdiendo. Cualquier sugerencia es muy apreciada. Gracias.
¿Qué tal usar require('dotenv').config({path:__dirname+'/./../../.env'}) ?
Su problema parece ser la ruta de ejecución.
Esto resolvió mis problemas en Node v8.14.1 :
const path = require('path') require('dotenv').config({ path: path.resolve(__dirname, '../.env') }) Simplemente haciendo require('dotenv').config({path:__dirname+'/./../../.env'}) resultó en una ubicación que se resolvió como /some/path/to/env/./../../.env
Aquí hay una solución de una sola línea:
require('dotenv').config({ path: require('find-config')('.env') })Esto recurrirá a los directorios principales hasta que encuentre un archivo .env para usar.
Alternativamente, también puede usar este módulo llamado ckey inspirado en una línea anterior.
Archivo .env del directorio principal.
# dotenv sample content USER=sample@gmail.com PASSWORD=iampassword123 API_KEY=1234567890algún archivo js del subdirectorio
const ck = require('ckey'); const userName = ck.USER; // sample@gmail.com const password = ck.PASSWORD; // iampassword123 const apiKey = ck.API_KEY; // 1234567890