web-dev-qa-db-fra.com

Comment définir des variables d'environnement sur Heroku pour l'application Nœuds et se connecter à la base de données PostgreSQL?

Je sais qu'il y a des questions identiques/similaires sur le débordement de pile et j'ai lu la documentation aussi - je ne comprends toujours rien - comment définir ces variables et OERE !! pour les définir.

Mon fichier env/production.js:

module.exports = {
    "DATABASE_URI": process.env.DATABASE_URI,
    "SESSION_SECRET": process.env.SESSION_SECRET,
    "Twitter": {
       "consumerKey": process.env.Twitter_CONSUMER_KEY,
       "consumerSecret": process.env.Twitter_CONSUMER_SECRET,
       "callbackUrl": process.env.Twitter_CALLBACK
    },
    "FACEBOOK": {
        "clientID": process.env.FACEBOOK_APP_ID,
        "clientSecret": process.env.FACEBOOK_CLIENT_SECRET,
        "callbackURL": process.env.FACEBOOK_CALLBACK_URL
    },
    "GOOGLE": {
        "clientID": process.env.GOOGLE_CLIENT_ID,
        "clientSecret": process.env.GOOGLE_CLIENT_SECRET,
        "callbackURL": process.env.GOOGLE_CALLBACK_URL
    },
    "LOGGING": true
};

Dans mon fichier env/development.js j'ai défini les variables (liées à mon postgres/localhost/xxx). Dois-je les mettre en heroku pour tous (Google, Facebook etc.) ou juste pour la base de données, car je devais en créer un avec heroku? Dois-je laisser le lien vers ma base de données locale dans mon fichier de développement et un lien vers la base de données heroku séparément?

Je ne sais même pas si je suis censé le faire à partir de ma ligne de commande?! Dans la documentation, il est dit: config heroku: obtenir CONFIG-VAR-NAME -s >> .env alors ce serait la config heroku: obtenir CONFIG-NAME DE MA BASE DE DONNÉES HEROKU -s >> .env?

Je me déploie pour la première fois et tellement confus! Aidez-moi :)

12
javascript2016

Selon documentation vous pouvez utiliser heroku CLI

$ heroku config:set DATABASE_URI=database_uri_here
$ heroku config:set SESSION_SECRET=session_secret
... and so on for each variable, 

ou vous pouvez utiliser l'interface utilisateur https://dashboard-classic.heroku.com/apps/ {your-app-name}/settings et fournir les mêmes variables via l'interface Web, comme je le mentionne dans le commentaire ci-dessus

NODE_ENV=production n'est pas traité spécialement par heroku, vous devez donc le fournir ainsi que toute autre variable env

ps: à proprement parler, cette question n'appartient pas vraiment à SO, car elle n'est pas liée à la programmation. Peut-être qu'il doit être déplacé vers SU

19
dark_ruby

Utilisation:

heroku config:set $(cat .env | sed '/^$/d; /#[[:print:]]*$/d')

pour définir votre configuration à partir du fichier .env.

5
Tay

En particulier, les variables de connexion à la base de données ne fonctionneront pas via les variables env Heroku. Je suggère d'utiliser dotenv et de définir des variables dans le fichier en installant Heroku CLI puis en utilisant bash:

heroku login
heroku run bash -a app_name

créer .env fichier s'il n'est pas là et y ajouter des valeurs

touch .env
echo "ENV_VAR=value" >> .env

confirmer l'entrée dans un fichier

cat .env
1
Avtar Nanrey