Node.jsでWebサーバーを起動:process.env.PORTの役割と設定方法
Node.jsにおけるprocess.env.PORTとは?
概要
Node.jsにおいて、process.env.PORT
は、Webサーバーが実行されるポート番号を格納する環境変数です。これは、ExpressなどのWebフレームワークで一般的に使用されます。
仕組み
- アプリケーション起動時に、
process.env.PORT
に設定された値が取得されます。 - 値が設定されていない場合、デフォルトのポート番号 (一般的には 3000) が使用されます。
- 取得されたポート番号は、Webサーバーがリスニングするポートとして設定されます。
例
const express = require('express');
const app = express();
const port = process.env.PORT || 3000;
app.listen(port, () => {
console.log(`Server listening on port ${port}`);
});
上記のコード例では、process.env.PORT
に環境変数が設定されている場合、その値をポート番号として使用します。設定されていない場合は、デフォルトポート 3000 を使用します。
メリット
- 環境設定ファイルなどでポート番号を簡単に設定できます。
- デプロイ環境ごとに異なるポート番号を使用できます。
- コード内でポート番号を直接記述する必要がなく、可読性が向上します。
注意点
process.env.PORT
は、手動で設定する必要があります。- 設定値が誤っている場合、Webサーバーが起動しなくなる可能性があります。
補足
- ポート番号は、ネットワーク上の他のサービスと競合しないようにする必要があります。
process.env.PORT
は、Node.jsアプリケーションでWebサーバーのポート番号を柔軟に設定するために役立つ環境変数です。ExpressなどのWebフレームワークと併用することで、開発・運用を効率化することができます。
以下は、process.env.PORT
を使用してExpressアプリケーションを起動するサンプルコードです。
基本的な例
const express = require('express');
const app = express();
const port = process.env.PORT || 3000;
app.get('/', (req, res) => {
res.send('Hello from Node.js!');
});
app.listen(port, () => {
console.log(`Server listening on port ${port}`);
});
説明
- このコードは、Expressアプリケーションを作成し、ルートパス (
/
) に対するGETリクエストを処理します。 app.listen()
メソッドを使用して、指定されたポート番号でWebサーバーを起動します。
環境変数を使用してポート番号を設定する
以下のコマンドを使用して、PORT
環境変数を設定できます。
PORT=8080 node index.js
このコマンドを実行すると、process.env.PORT
には 8080
が設定され、Webサーバーはポート 8080 で起動します。
dotenvパッケージを使用する
.env
ファイルを使用して環境変数を設定することもできます。
package.json
{
"dependencies": {
"dotenv": "^8.2.0"
}
}
.env
PORT=8080
index.js
const express = require('express');
const app = express();
require('dotenv').config();
const port = process.env.PORT;
app.get('/', (req, res) => {
res.send('Hello from Node.js!');
});
app.listen(port, () => {
console.log(`Server listening on port ${port}`);
});
このコード例では、dotenv
パッケージを使用して .env
ファイルから環境変数をロードしています。
これらのサンプルコードは、process.env.PORT
を使用してExpressアプリケーションを起動する方法を示しています。環境に合わせて適切な方法を選択してください。
Node.jsでポート番号を設定するその他の方法
process.env.PORT
以外にも、Node.jsアプリケーションでポート番号を設定する方法はいくつかあります。
コマンドライン引数を使用する
node index.js 8080
上記の例では、node
コマンドにポート番号 8080
を引数として渡しています。アプリケーション内で、以下のコードを使用して引数を取得できます。
const port = parseInt(process.argv[2], 10);
設定ファイルを使用する
JSONやYAMLなどの形式で設定ファイルを定義し、ポート番号を記述することができます。
config.json
{
"port": 8080
}
const express = require('express');
const app = express();
const config = require('./config.json');
const port = config.port;
app.get('/', (req, res) => {
res.send('Hello from Node.js!');
});
app.listen(port, () => {
console.log(`Server listening on port ${port}`);
});
プログラム内で直接設定する
const express = require('express');
const app = express();
const port = 8080;
app.get('/', (req, res) => {
res.send('Hello from Node.js!');
});
app.listen(port, () => {
console.log(`Server listening on port ${port}`);
});
フレームワーク固有の設定を使用する
ExpressなどのWebフレームワークには、ポート番号を設定するための独自の設定オプションが用意されている場合があります。フレームワークのドキュメントを参照してください。
上記以外にも、Node.jsアプリケーションでポート番号を設定する方法はいくつかあります。状況に合わせて適切な方法を選択してください。
node.js express port