Node.js: dotenvライブラリの利用
このドキュメントはシークレットの管理ガイドの一部です。完全なガイドはこちらからご覧いただけます:Node.jsでシークレットを管理する方法。
👋 Stackhero ドキュメントへようこそ!
Stackhero は、すぐに使える Node.js クラウド 環境を提供し、開発スピードを加速します:
- シンプルな
git pushだけで、数秒で本番環境にデプロイ。追加ツールや手動設定は不要です。- 独自ドメインを利用でき、自動 HTTPS 証明書により追加設定なしでアプリケーションのセキュリティを確保します。
- 自動バックアップ、ワンクリックアップデート、予測可能な料金体系で、機能開発に集中できるよう Stackhero がインフラ管理を担当します。
- プライベートかつ専用インフラ上に構築されており、安定したパフォーマンスと高いセキュリティを実現します。
運用負荷を削減し、時間を節約:わずか数分で Stackhero の Node.js クラウドホスティング 上でアプリケーションを稼働させることができます。
実際のプロジェクトでは、複数のシークレットを管理する必要があることが多いです。たとえば、データベース接続にはホスト名、ユーザー名、パスワードが必要です。
シークレットが1つだけなら簡単ですが、複数になると管理が煩雑になります。例えば、次のようなコマンドでアプリケーションを起動することを想像してください。
POSTGRESQL_HOST=<XXXXXX>.stackhero-network.com POSTGRESQL_USER=admin POSTGRESQL_PASSWORD=myPassword node app.js
このように変数が増えると、可読性や保守性が低下します。本番環境ではさらに多くの変数が必要になるため、この方法は現実的ではありません。
そこで役立つのがdotenvライブラリです。
dotenvを使えば、シークレットを.envという別ファイルにまとめて管理できます。
まず、dotenvライブラリをインストールします。
npm install dotenv
次に、変数を格納するための.envファイルを作成します。
POSTGRESQL_HOST=<XXXXXX>.stackhero-network.com
POSTGRESQL_USER=admin
POSTGRESQL_PASSWORD=myPassword
シークレットを安全に保つため、.envファイルはGitリポジトリに追加しないようにしましょう。.gitignoreファイルに追加します。
echo ".env" >> .gitignore
最後に、app.jsファイルの先頭でdotenvライブラリを読み込みます。
require("dotenv").config();
この構成で、開発環境ではnode app.jsでアプリケーションを起動すると、dotenvが自動的に.envファイルを読み込みます。本番環境では.envファイルは不要で、環境変数はNode.jsサービスの設定から直接取得されます(Stackheroダッシュボードで管理可能)。