连接到Heroku node.js应用程序中的数据库,而无需在git上显示authentication详细信息
我有一个node.js应用程序,我推到Heroku。 它使用MongoDB来存储。 Heroku提供了一个免费的MongoDB作为你的应用程序可以连接的插件。 现在我的问题是,因为连接string是这种格式:mongodb:// dbuser:dbpass @主机:端口/数据库名称,因为Heroku使用git推,我怎么推我的代码到公共GitHub回购没有透露我的用户名和密码给大家?
有没有办法让数据库打开,但只有来自我的Heroku应用程序的连接?
我不得不承认我对整个事情感到困惑。
您将需要阅读Heroku开发中心的configuration和configurationvariables 。 Heroku希望并鼓励您使用configurationvariables(在Heroku应用程序本身configuration,而不是在代码库中)来保护敏感数据,如密码。 使用heroku config:set VARIABLE=value
,但请注意,大多数Heroku插件,configuration时,自动添加身份validation信息到您的configurationvariables。 您可以查看使用heroku config
命令设置的内容。
使用节点,你可以用process.ENV.VARIABLE
访问你的环境variables,其中VARIABLE
是你试图访问的环境/configurationvariables的名字。
最后要说明的是,您可以将项目目录中的本地环境variables添加到.env
中(将文件添加到.gitignore!)…当您使用foreman start
或foreman run
时,工头将加载这些variables。
如果你运行:
heroku config
工具栏将显示envvariables,这样你可以在代码中使用envvariables:
process.env.VARIABLE