web-dev-qa-db-ja.com

ノードアプリのherokuで環境変数を設定し、postgresqlデータベースに接続する方法は?

スタックオーバーフローには同じ/同様の質問があることを知っています。ドキュメントも読んでいます。私はまだ何も理解していません。これらの変数とWHEREの設定方法を理解しています。それらを設定します。

私の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
};

Env/development.jsファイルで変数を設定します(postgres/localhost/xxxにリンクします)。 herokuで作成する必要があったので、すべて(Google、Facebookなど)のためにherokuに設定する必要がありますか、それともデータベースだけに設定する必要がありますか?開発ファイルにローカルデータベースへのリンクを残し、herokuデータベースに個別にリンクしますか?

コマンドラインから実行するかどうかさえわかりません。ドキュメントには次のように書かれています:heroku config:get CONFIG-VAR-NAME -s >> .envだから、heroku config:get CONFIG-NAME OF MY HEROKU DATABASE -s >> .env?

初めてデプロイするので、混乱しています!助けて :)

12
javascript2016

ドキュメント によると、heroku CLI

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

または、UI https://dashboard-classic.heroku.com/apps/ {your-app-name}/settingsを使用して、上記のコメントで述べたように、Webインターフェイスを介して同じ変数を提供できます。

NODE_ENV=productionherokuによって特別に扱われないため、他のenv変数と同様に提供する必要があります。

ps:厳密に言えば、この質問はプログラミングには関係ないため、実際にはSOに属していません。多分それは [〜#〜] su [〜#〜]に移動する必要がある

19
dark_ruby

使用する:

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

.envファイルから設定を設定します。

5
Tay

特に、データベース接続変数はHerokuのenv変数では機能しません。 dotenv を使用し、 Heroku CLI をインストールしてファイルに変数を設定してから、bashを使用することをお勧めします。

heroku login
heroku run bash -a app_name

作成.envファイルが存在しない場合は値を追加します

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

ファイルのエントリを確認します

cat .env
1
Avtar Nanrey