...データベース接続ファイルと、資格情報がある別の「保護された」ファイルがあり、このファイルは.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スクリプトを使用してプロセスを開始している可能性が高いため、これは一般的に推奨されていません。 package.json
以降 、ここでnpm start
コマンドが定義され、常にリポジトリにコミットされ、資格情報を非表示にするという目的全体が無効になります。