T-CREATOR

NestJSで.envへ定義した環境変数のポートを利用して起動するやり方を紹介

NestJSで.envへ定義した環境変数のポートを利用して起動するやり方を紹介

NestJSアプリを.envで定義したポートで起動する方法を解説します。
環境ごとに異なるポートを設定できるため、開発やデプロイ時に便利です。

環境変数の管理を可能にする設定

環境変数を管理するために@nestjs/configを導入します。
以下のコマンドでインストールしてください。

shyarn add @nestjs/config

.envファイルでポートを定義する

プロジェクトのルートディレクトリに.envを作成し、ポート番号を定義します。
例えば、ポートを3000に指定する場合は以下のように記述してください。

envPORT=3000

NestJSの設定モジュールを適用する

NestJSのConfigModuleAppModuleにインポートし、環境変数を読み込むように設定します。
isGlobal: trueを指定すると、全てのモジュールで環境変数を利用できます。

typescriptimport { Module } from '@nestjs/common';
import { ConfigModule } from '@nestjs/config';
import { AppController } from './app.controller';
import { AppService } from './app.service';

@Module({
  imports: [
    ConfigModule.forRoot({ isGlobal: true }),
  ],
  controllers: [AppController],
  providers: [AppService],
})
export class AppModule {}

アプリケーション起動時にポートを設定する

ConfigServiceを使用し、.envのポート番号を取得してアプリケーションを起動します。
環境変数が未定義の場合は、デフォルト値3000を使用するように設定してください。

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

async function bootstrap() {
  const app = await NestFactory.create(AppModule);
  const configService = app.get(ConfigService);
  const port = configService.get<number>('PORT') || 3000;

  await app.listen(port);
  console.log(`Application is running on: http://localhost:${port}`);
}
bootstrap();

環境変数を反映してアプリを起動する

以下のコマンドでNestJSアプリケーションを起動してください。
.envに設定したポートでアプリが動作します。

shyarn start

設定手順のまとめ

  1. @nestjs/configをインストールする
  2. .envでポート番号を設定する
  3. ConfigModuleAppModuleに追加する
  4. main.tsConfigServiceを利用してポートを取得する
  5. npm run startでアプリを起動する

この設定により、.envの値を変更するだけで簡単にポートを切り替えられます。
環境ごとに適したポートで動作させたい場合に有効です。

記事Article

もっと見る