[英]How to set environment variables on Heroku for Node app and connect to the PostgreSQL database?
我知道關於堆棧溢出有相同/類似的問題,我也閱讀了文檔 - 我仍然什么都不明白 - 如何設置這些變量以及在哪里!! 來設置它們。
我的 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 文件中,我設置了變量(鏈接到我的 PostgreSQL/localhost/xxx)。 我是否需要在 Heroku 中為所有人(谷歌、Facebook 等)或僅為數據庫設置它們,因為我必須用 Heroku 創建一個? 我是否將指向本地數據庫的鏈接保留在我的開發文件中並分別鏈接到 Heroku 數據庫?
我什至不知道是否應該從命令行執行此操作?! 在文檔中它說: Heroku config:get CONFIG-VAR-NAME -s >> .env 那么它會是 Heroku config:get CONFIG-NAME OF MY HEROKU DATABASE -s >> .env
嗎?
我是第一次部署,很困惑! 幫助 :)
根據文檔,您可以使用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 並通過網絡界面提供相同的變量,正如我在上面的評論中提到的
NODE_ENV=production
沒有被heroku
特殊對待,所以你需要提供它以及任何其他環境變量
ps:嚴格來說這個問題並不真正屬於SO,因為它與編程無關。 也許它需要移動到SU
heroku config:set $(cat .env | sed '/^$/d; /#[[:print:]]*$/d')
從 .env 文件設置您的配置
特別是數據庫連接變量不能通過 Heroku 環境變量工作。 我建議使用dotenv並通過安裝Heroku CLI為文件設置變量,然后使用 bash:
heroku login
heroku run bash -a app_name
如果不存在,則創建.env
文件並向其添加值
touch .env
echo "ENV_VAR=value" >> .env
確認文件中的條目
cat .env
Heroku 現在會在您添加 PostgreSQL 附加組件時自動設置DATABASE_URL
環境變量
然后可以在其他環境變量旁邊看到此變量,可能是手動定義的,位於:
添加的變量已經包含秘密身份驗證信息,因此您應該按原樣使用它。
如何讓它與 Sequelize 一起工作
我剛剛使用 Sequelize 管理了一個有效的解決方案,如:使用 Sequelize 在 Heroku上部署 FeathersJS 應用程序,您基本上只需要執行以下操作:
sequelize = new Sequelize(process.env.DATABASE_URL, {
dialect: 'postgres',
protocol: 'postgres',
dialectOptions: {
ssl: {
require: true,
rejectUnauthorized: false
}
}
});
在 Heroku CLI 中登錄:
heroku login
列出所有應用程序:
heroku apps
大量導出環境變量
cat .env | tr '\n' ' ' | xargs heroku config:set -a your_app
另外一個選項:
$ heroku login
然后編輯所有配置變量:
$ VISUAL="emacs" heroku config:edit -a <app_name>
這將打開 emacs,您可以在其中復制/粘貼整個.env
內容。 然后保存並退出(Ctrl+x Ctrl+s、Ctrl+x Ctrl+c)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.