LoginSignup
26
13

More than 5 years have passed since last update.

Node.js Expressフレームワークの「ポート指定部分」に注力してみた

Last updated at Posted at 2019-04-06

Node.jsでExpressフレームワークを使用した時に出てくる、ポート設定部分の説明です。
記述を上から説明すると、ポートを指定してあげて、そこをlistenしてくれるように指定しているだけです。

const port = process.env.PORT || 3000;
app.listen(port, () => {
  console.log(`listening on ${port}`);
});

Expressアプリの設定は環境変数で行うことが多いようなので
webサーバーに対してどのポートがlistenしているか教えるために環境変数にPORT設定してあげるのがお作法らしいです。なので、なんでも良いから環境変数(process.env.PORT)でイケるところか、PORT3000で設定させてよってニュアンスだと理解。

const port = process.env.PORT || 3000;

app.listenapp.set('port', ...)で任意のサーバーが環境から特定のパラメーターを指定したPORTから受け取れるようにしてあげる。
What is process.env.PORT in Node.js?

app.listen(port, () => {
  console.log(`listening on ${port}`);
});

process.envとは?

Node.jsにおける環境変数は、process.envというオブジェクトに格納されます。
このオブジェクトは最初から存在しており、いくつかの環境変数が入っています。
コマンドラインで確認できるよ。

$ node
> process.env

app.set('port', process.env.PORT || 3000)app.listen(3000);の違いは
多くの環境(例えばHeroku)では、規約として、環境変数PORTを設定して、Webサーバーにどのポートをlistenするかを指示できます。

だからprocess.env.port || 3000は、環境変数PORTにあるものは何でも、存在しない場合は3000を意味します。

つまり、app.listen、またはapp.set( ‘port’、…)に渡します。これにより、サーバーは環境から、どのポートをリッスンするかをパラメータとして受け入れることができます。

app.listen()にハードコードされた3000を渡すと、あなたの要件や、あなたが実行している環境の要件に応じて、ポート3000でリッスンします。

26
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
26
13