【NestJS】環境設定の扱い方:dotenvを使ったアプローチ

NestJS Javascript

概要

NestJSは効率的で信頼性の高いバッグエンドを構築を可能にする、強力なNodejsフレームワークです。今回はdotenvライブラリを使用してNestJSアプリケーションで環境変数を扱う方法について説明したいと思います、次回は’@nestjs/config’モジュールを使用することについて説明したいと思います。

プロジェクトセットアップ

$ npm i -g @nestjs/cli  <- 既に実行済みなら省略
$ nest new project-name

導入する

dotenvのインストール

$npm install dotenv

リッスンポートとMysqlに接続情報を持つ.envを用意します。

LISTEN_PORT=3000
DB_HOST=localhost
DB_PORT=3306
DB_USERNAME=testuser
DB_PASSWORD=testpasswd
DB_DATABASE=testdatabase

環境変数を読み込み

アプリケーションのメインファイル(通常はmain.ts)で、dotenv ライブラリを使用して.env ファイルから環境変数を読み込みます。これはアプリケーションの最初に行う必要があります。

import * as dotenv from 'dotenv';

dotenv.config();

すると.envファイルの設定値を取得ができます。

環境変数からの値を利用

import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';

import * as dotenv from 'dotenv';

dotenv.config();
async function bootstrap() {
  const app = await NestFactory.create(AppModule);
  await app.listen(process.env.LISTEN_PORT || 3000);
}
bootstrap();

実行してみます。

$ npm run start
> testdotenv@0.0.1 start
> nest start

[Nest] 27836  - ...     LOG [NestFactory] Starting Nest application...
[Nest] 27836  - ...     LOG [InstanceLoader] AppModule dependencies initialized +13ms
[Nest] 27836  - ...     LOG [RoutesResolver] AppController {/}: +12ms
[Nest] 27836  - ...     LOG [RouterExplorer] Mapped {/, GET} route +4ms
[Nest] 27836  - ...     LOG [NestApplication] Nest application successfully started +3ms
タイトルとURLをコピーしました