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.listenか**app.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でリッスンします。