【Node.js】dotenvで環境変数を定義する

環境変数を.envファイルからprocess.envに読み込むモジュール”dotenv”を簡単に紹介します。

インストール


npm install dotenv

.envファイルの作成

.envファイルを作成して、変数をKEY=VALUE形式で記述します。


# "#"で始まる行はコメントアウトされます
DB_HOST=localhost
DB_USER=root
DB_PASS=s1mpl3

構成

ファイルの構成は以下のような感じ。


sample-app/
|-- .env
|-- app.js
|-- node_modules/
|-- package-lock.json
`-- package.json

使い方

環境変数を使用したいファイル内でrequire('dotenv').config()dotenvを呼び出し、process.env.[変数名]で定義した変数を使用します。


require('dotenv').config()

console.log(process.env.DB_HOST) // localhost

require('dotenv').config()で返ってきたオブジェクトのparsedプロパティには全ての変数がオブジェクトにKEY=VALUE形式で格納されています。


const result = require('dotenv').config()

console.log(result.parse) // { DB_HOST: 'localhost', DB_USER: 'root', DB_PASS: 's1mpl3' }

各プロパティの挙動


const result = require('dotenv').config()

/* 変数が定義されていない場合 */
console.log(process.env.DB_PORT) // undefined

/* .envファイルが空の場合 */
console.log(process.env.DB_HOST) // undefined
console.log(result.parsed)       // {}

/* .envファイルが存在しない場合 */
console.log(process.env.DB_HOST) // undefined
console.log(result.parsed)       // undefined
console.log(result.error)        // エラーメッセージ(Error: ENOENT: no such file or directory, open...)

参考