2020/06/05

node.jsでdotenvを読みだせない場合の対処法


背景


Node.jsのアプリを起動する際、「.env」ファイルが読み込めない場合があったため、対処法を含めdotenvについて調査した。

記事の目的


Node.jsでアプリ起動時に.envの環境変数を読み込む

.env


ここでは、.envの環境変数を読み込む方法について記載する。

process.env

Node.jsで環境変数を扱いたいときは、process.envオブジェクトを参照する。process モジュールはデフォルトで使用可能になっているので、requireする必要はない。
  1. $ node
  2. > process.env
  3. {
  4. ...
  5. OS: 'Ubuntu'
  6. Path: '...',
  7. ...
  8. }

dotenv

dotenvモジュールを使用すると、カレントディレクトリに置かれた.env ファイルを読み込み、そこに記述されたkeyとvalueのペアをprocess.env経由で参照できる。
  1. dotenvモジュールのインストール
    1. $ npm install dotenv
    2. $ npm install dotenv --save
  2. .envファイルの作成
    1. # コメント
    2. KEY1=VALUE1
    3. KEY2=VALUE2
    4. KEY3=VALUE3
  3. dotenvの呼び出し
    • js内でのdotenvの呼び出し
    • 下記をjsファイル内に記述(非推奨)
      1. require('dotenv').config();
    • 起動時にdotenvの呼び出し
    • 起動時に、-r dotenv/config オプションをつける
      1. $ node -r dotenv/config app.js

備考


  • .envファイルの読み込みは推奨されていないため、js内でのdotenvの呼び出しは行わない方が良い
  • 理由: 環境変数がアプリの設定ファイルのように扱われることを防ぐため


まとめ


  • Node.jsでアプリ起動時に.envの環境変数を読み込む方法について調査、記載した

参考文献




変更履歴


  1. 2020/06/05: 新規作成

0 件のコメント:

コメントを投稿

MQTTの導入

背景 IoTデバイスの接続環境構築のため、MQTT(mosquitto)の導入を行った。 記事の目的 MQTT(mosquitto)をUbuntuに導入する mosquitto ここではmosquittoについて記載する。 MQTT MQTT(Message Qu...