连接到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 startforeman run时,工头将加载这些variables。

如果你运行:

  heroku config 

工具栏将显示envvariables,这样你可以在代码中使用envvariables:

  process.env.VARIABLE