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ダッシュボードで管理可能)。