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

NestJSアプリを.env
で定義したポートで起動する方法を解説します。
環境ごとに異なるポートを設定できるため、開発やデプロイ時に便利です。
環境変数の管理を可能にする設定
環境変数を管理するために@nestjs/config
を導入します。
以下のコマンドでインストールしてください。
shyarn add @nestjs/config
.env
ファイルでポートを定義する
プロジェクトのルートディレクトリに.env
を作成し、ポート番号を定義します。
例えば、ポートを3000
に指定する場合は以下のように記述してください。
envPORT=3000
NestJSの設定モジュールを適用する
NestJSのConfigModule
をAppModule
にインポートし、環境変数を読み込むように設定します。
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
設定手順のまとめ
@nestjs/config
をインストールする.env
でポート番号を設定するConfigModule
をAppModule
に追加するmain.ts
でConfigService
を利用してポートを取得するnpm run start
でアプリを起動する
この設定により、.env
の値を変更するだけで簡単にポートを切り替えられます。
環境ごとに適したポートで動作させたい場合に有効です。
記事Article
もっと見る- article
NestJSでバリデーションエラーをログ出力する設定を紹介
- article
NestJSで作成したAPIのレスポンスヘッダーに付与されるx-powered-by: Express を消す方法を紹介
- article
Next.jsで環境変数に別の変数を利用し柔軟に管理するdotenv-expandの活用法を紹介
- article
【2025年3月版】Cursor ProとAPI利用比較。 Claude・GPT-4o・o1・GPT-4.5の損益分岐点と選び方
- article
フォーム入力情報からZodを利用してDTO作成しへ変換処理を実施するやり方を紹介
- article
Zodバリデーションのエラーメッセージを日本語化すやり方を紹介