连接到Heroku node.js应用程序中的数据库,而不会在git上显示身份验证详细信息

Luk*_*vat 6 git heroku mongodb node.js

我有一个我推送到Heroku的node.js应用程序.它使用MongoDB进行存储.Heroku提供免费的MongoDB作为您的应用可以连接的插件.现在我的问题是,因为连接字符串是这种格式:mongodb:// dbuser:dbpass @ host:port/dbname,并且由于Heroku使用git来推送,如何在不泄露我的情况下将我的代码推送到公共GitHub仓库每个人的用户名和密码?

有没有办法让数据库打开,但仅限于来自我的Heroku应用程序的连接?

我不得不承认我对整件事感到非常困惑.

Pro*_*tic 8

您将需要阅读Heroku开发中心的配置和配置变量.Heroku期望并鼓励您使用配置变量(在Heroku应用程序本身而不是在代码库中配置)来保护敏感数据(如密码).使用heroku config:set VARIABLE=value,但请注意,大多数Heroku插件在配置时会自动将身份验证信息添加到配置变量中.您可以查看使用该heroku config命令设置的内容.

使用node,您将访问您的环境变量process.ENV.VARIABLE,其中VARIABLE包含您尝试访问的环境/配置变量的名称.

最后,您可以.env在项目目录中添加本地环境变量(将文件添加到.gitignore!)...当您使用foreman start或时,foreman将加载这些变量foreman run.