NestJSで起動するポートを.envから参照して起動する設定
この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
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の値を変更するだけで簡単にポートを切り替えられます。
環境ごとに適したポートで動作させたい場合に有効です。
著書
チートシートNestJS Guard/Interceptor/Filter 早見表:適用順序とユースケース対応表
検証・比較NestJS × TypeORM vs Prisma vs Drizzle:DX・性能・移行性の総合ベンチ
チートシートNestJS 2025 年の全体像:Express・Fastify・Serverless の使い分け早わかり
使い方NestJS クリーンアーキテクチャ:UseCase/Domain/Adapter を疎結合に保つ設計術
チートシートNestJS Decorator 速見表:Controller/Param/Custom Decorator の定型パターン
使い方【実践】NestJS で REST API を構築する基本的な流れ
使い方Orca の権限の初めの設定と直し方: 入れた直後、Claude Code が勝手に起動する
検証・比較Orca で Claude Code と Codex を GUI で使う手順: ターミナルだけだった Orca が、チャットの画面で使えるように
挙動Claude Code の context-mode の使い方: 入れただけでは、実は効いていなかった
使い方Postman が Claude Code と Codex に入れたプラグインの確かめ方: Superset も、開いただけでフックが11個
使い方Claude Code の settings.local.json の秘密が漏れる理由: その API キー、GitHub に出てない?
使い方Orca の差分の画面の使い方: エージェントへの指摘、1つずつ送っていない?
