Apprenant que c'est une mauvaise pratique d'inclure des clés secrètes d'API, j'ai fait des recherches et j'ai essayé d'apprendre à créer des process.env
Personnalisés.
Après avoir lu:
J'essaie de définir un fichier env localement sur la base de process.env.NODE_ENV
. L'application serait hébergée sur Heroku et dans mon .gitignore j'ai dev.env
Mais quand j'essaye d'utiliser dotenv
localement j'obtiens un undefined
. J'ai défini l'environnement localement avec export NODE_ENV=development
Dans mon terminal. Lorsque j'exécute la commande npm start
Ou nodemon
les deux renvoient undefined
mais dans env.js I obtenez Testing for: development
, exemple:
nodemon
[nodemon] 1.19.1
[nodemon] to restart at any time, enter `rs`
[nodemon] watching: *.*
[nodemon] starting `node app.js`
Testing for: development
undefined
Voici ce que j'ai:
app.js :
const keys = require('./config/env')
return console.log(process.env.PORT)
config/env.js :
const env = process.env.NODE_ENV
console.log(`Testing for: ${env}`)
try {
switch(env) {
case 'undefined':
Error('Environment undefined, if local in terminal: export NODE_ENV=development')
break
case 'development':
require('dotenv').config({
path: './dev.env'
})
break
case 'production':
require('dotenv').config({
path: './prod.env'
})
break
default:
Error('Unrecognized Environment')
}
} catch (err) {
Error('Error trying to run file')
}
config/dev.env :
## Port number to run Application
PORT=4321
mais dans app.js lorsque je teste avec return console.log(process.env.PORT)
ou return console.log(keys.PORT)
ils se connectent tous les deux undefined
, Pourquoi? Je semble faire quelque chose de mal dans env.js lors de l'utilisation de dotenv
.
Pour clarifier, je ne pousse même pas encore vers Heroku et prod.env sera la validation. S'il y a une meilleure approche, informez-moi.
Bonjour, utilisez d'abord switch(env.trim())
, puis modifiez la valeur du chemin path: './config/dev.env'
. Bonne chance.
Heroku ne fonctionne pas sur dotenv.
Il a quelque chose appelé "Config Vars" dans la page Paramètres de l'application Heroku donnée:
Par exemple
Pour votre exemple, si le code souhaite accéder à: process.env.NODE_ENV
, vous définiriez un nouveau paramètre de configuration dans votre page de paramètres Heroku de l'application donnée, et l'appelleriez NODE_ENV
. Définissez la valeur souhaitée et appuyez sur Enregistrer. Voila. Terminé.
La valeur ajoutée de dotenv est généralement pour les tests sur votre machine locale.