やりたいこと
環境変数で設定した値をNestJSアプリ内で使う。
出来ない(または推奨されていない)こと
環境(例:development, staging)毎に異なる値を設定すること。
やれば出来るかもしれませんが、dotenv
のドキュメントでは「推奨しない」と書かれています。
https://www.npmjs.com/package/dotenv#should-i-have-multiple-env-files
この場合は、node-configを使いましょう。
環境
NestJS用に、内部的にdotenv
を使っている@nestjs/configもありますが、dotenv
そのものを使うほうが簡便だと思っています。
インストール
yarn add dotenv
// or
npm install dotenv
設定
ここでは、アプリ内で統一して環境変数を読み込む場所として、src/config/app.config.ts
を想定しています。
src/config/app.config.ts
require('dotenv').config()
if (!process.env.DB_PASSWORD) {
throw new Error('DB_PASSWORD must be set.')
}
export const DB_PASSWORD = process.env.DB_PASSWORD