【Node.js】process.env.PORTの変更方法を徹底解説!コマンドライン、環境変数、.envファイル、その他も網羅
Node.js で process.env.PORT の値を変更する方法
コマンドライン引数を使用する
Node.js スクリプトを実行する際に、-p
フラグとポート番号を指定することで、process.env.PORT
の値を設定できます。
node app.js -p 3000
このコマンドは、app.js
スクリプトをポート 3000 で実行します。
process.env オブジェクトを使用する
Node.js スクリプト内で、process.env
オブジェクトを使用して PORT
変数の値を設定できます。
process.env.PORT = 3000;
const app = require('express')();
app.listen(process.env.PORT, () => {
console.log(`Server listening on port ${process.env.PORT}`);
});
このコードは、ポート 3000 で Express アプリケーションを起動します。
.env
ファイルは、環境変数を設定するために使用されるファイルです。このファイルを使用して PORT
変数の値を設定し、スクリプト起動時に読み込むことができます。
PORT=3000
上記の .env
ファイルを作成し、以下のコマンドを使用してスクリプトを実行できます。
node app.js
このコマンドは、.env
ファイルから PORT
変数の値を読み込み、ポート 3000 で Express アプリケーションを起動します。
補足:
- 上記の方法で
process.env.PORT
の値を変更した場合、その変更は現在の Node.js プロセスとその子プロセスのみ有効となります。 - 永続的に
process.env.PORT
の値を変更するには、オペレーティングシステムの設定を変更する必要があります。 - 特定のポート番号を使用できない場合は、ポート番号が使用可能かどうかを確認する必要があります。
const express = require('express');
const port = parseInt(process.argv[2]) || 3000;
const app = express();
app.listen(port, () => {
console.log(`Server listening on port ${port}`);
});
このコードを実行するには、以下のコマンドを使用します。
node app.js 5000
const express = require('express');
process.env.PORT = 4000;
const app = express();
app.listen(process.env.PORT, () => {
console.log(`Server listening on port ${process.env.PORT}`);
});
node app.js
PORT=3000
node app.js
注:
- 上記のコードはあくまで例であり、ご自身のニーズに合わせて変更する必要があります。
- エラー処理やその他のロジックを追加することをお勧めします。
Node.js で process.env.PORT の値を変更するその他の方法
クロスプラットフォームツールを使用する
dotenv
や config
のようなクロスプラットフォームツールを使用すると、.env
ファイルをより簡単に管理できます。これらのツールは、環境に応じて異なる .env
ファイルを使用したり、複雑な環境変数の設定を定義したりするのに役立ちます。
クラウドプロバイダーの設定を使用する
Heroku や AWS などのクラウドプロバイダーを使用している場合は、そのプラットフォームの設定を使用して process.env.PORT
の値を設定できます。これにより、コードをデプロイするたびに手動でポート番号を設定する必要がなくなります。
PM2 などのプロセス管理ツールを使用すると、起動時に process.env.PORT
の値を設定できます。これにより、アプリケーションを毎回手動で起動する必要がなくなります。
カスタムモジュールを使用する
独自のモジュールを作成して process.env.PORT
の値を管理することもできます。このモジュールは、コマンドライン引数、.env
ファイル、または他のソースからポート番号を読み込むことができます。
最適な方法を選択する
process.env.PORT
の値を変更する最適な方法は、プロジェクトのニーズと要件によって異なります。単純なアプリケーションの場合は、コマンドライン引数を使用するだけで十分な場合があります。一方、複雑なアプリケーションや複数の環境で実行するアプリケーションの場合は、.env
ファイルやクロスプラットフォームツールを使用する方がよい場合があります。
node.js environment-variables