J'ai un fichier .env à dossier racine fichier
NODE_ENV=development
NODE_Host=localhost
NODE_PORT=4000
NODE_HTTPS=false
DB_Host=localhost
DB_USERNAME=user
DB_PASSWORD=user
Et server.js
fichier dans le dossier root/app/config/server.js
. La première ligne du fichier server.js
est
require('dotenv').config();
J'ai aussi essayé de suivre:
require('dotenv').config({path: '../.env'})
;
require('dotenv').config({path: '../../.env'})
;
Cependant, mes variables env ne sont pas chargées lorsque j'exécute le fichier server.js
À partir de command Prompt
node root/app/config/server.js
Si j'utilise le visual studio et que j'appuie sur F5 , ça charge !!
Je ne suis pas sûr de ce que je fais mal, de ce qui me manque. Toute suggestion est hautement appréciée. Merci.
Que diriez-vous d'utiliser require('dotenv').config({path:__dirname+'/./../../.env'})
?
Votre problème semble être le chemin d'exécution.
Ajoutant une petite nuance à la réponse ci-dessus - si vous appelez dotenv
à partir d'un fichier imbriqué et que votre fichier .env
se trouve à la racine du projet, la manière dont vous souhaitez connecter les points est la suivante:
require('dotenv').config({path:'relative/path/to/your/.env'})
Voici une autre bonne alternative:
require('dotenv').config({ path: require('find-config')('.env') })
Cela recurse répertoires parents jusqu'à ce qu'il trouve un fichier .env à utiliser.
Vous pouvez également utiliser alternativement ce module appelé ckey inspiré du one-liner ci-dessus.
Fichier .env du répertoire principal.
# dotenv sample content
[email protected]
PASSWORD=iampassword123
API_KEY=1234567890
des fichiers js du sous-répertoire
const ck = require('ckey');
const userName = ck.USER; // [email protected]
const password = ck.PASSWORD; // iampassword123
const apiKey = ck.API_KEY; // 1234567890
Cela a résolu mes problèmes dans le nœud v8.14.1
:
const path = require('path')
require('dotenv').config({ path: path.resolve(__dirname, '../.env') })
Le simple fait de require('dotenv').config({path:__dirname+'/./../../.env'})
a abouti à un emplacement résolu en /some/path/to/env/./../../.env