…我有我的数据库连接文件和另一个“受保护的”文件,其中包含我的凭据,并且此文件包含在.gitignore中。我导入它并到达数据。
正确的方法是使用环境变量。
使用环境变量
环境变量是在 环境 (即您的本地开发机器或远程生产服务器)上设置的。然后,在您的应用程序中,读取环境变量并适当地使用它们。
通常有(至少)几个原因,例如:
- 凭据不存在于查看存储库内容的人可以读取的文件中。克隆存储库的人不需要知道 您的 数据库凭据。
- 凭据在环境之间可能有所不同。您可能会在本地开发计算机上使用其他数据库,而在远程生产服务器上使用其他数据库。
设置环境变量的方法如下(这在Linux中,其他OS可能有所不同):
$ export MONGO_DB_USERNAME=foo$ export MONGO_DB_PASSWORD=bar
以下是在Node.js中阅读它们的方式:
console.log(process.env.MONGO_DB_USERNAME) // logs 'foo'console.log(process.env.MONGO_DB_PASSWORD) // logs 'bar'
或在启动时将变量传递给流程
另外,您可以在启动过程时传递变量,如下所示:
$ MONGO_DB_USERNAME=foo MONGO_DB_PASSWORD=bar node app.js
但是,通常不建议这样做,因为您很可能要通过npm start
script启动进程。因为
package.json,这里的
npmstart命令定义,始终致力于资源库,就违背了隐藏凭证的全部目的。



