Node.jsで開発環境を切り替え

こんばんわ、毒きのこです。

段々寒い季節になってきましたね。自分もまさかの若干風邪気味です…。
気を取り直し、今日はNode.jsを使った開発に関する内容を。

Node.jsのプロジェクトでは起動時に、どの環境設定を元に立ち上げるかを指定することが出来ます。

どういうことか、例えばWebアプリケーション開発において一般公開するものはProduction(本番環境)、日々修正したり改修を加えるものをDevelopment(開発環境)といったように通常わけて開発をします。開発しているプロジェクトのソースなどは1種類ですが、データベースの参照先やAPIのURL、他様々なパスなど、開発・本番によって基本的に切り分けて開発を行います。

Node.jsには環境変数というものがあり、それを設定することで簡単に環境を切り替えることが出来ます。Node.jsで開発する際にpm2という便利なデーモン化するツールがあり、今回はそれを使って説明します。

pm2の紹介は過去記事を参考にしてみてください。

環境ごとの設定ファイルを用意

基本的にExpressを使ったNode.jsのアプリを起動する場合、「node app.js」と入力しますが、ここでは設定ファイルから起動するための準備をまず行います。

プロジェクトのルートフォルダに好きなファイル名でOKなので、適当にjsonファイルを作成します。

自分のアプリをサンプルにしましたが、ここでは「configuration.json」としています。中身は以下のように、環境変数NODE_ENVごとにそれぞれ「development」「staging」「production」と定義されているのがわかりますね。

設定ファイルを作成したとこで、ちょっと便利なnpmを紹介。
node-configというもので、こちらを以下コマンドでプロジェクト内にインストール。

Expressプロジェクトのトップにconfigフォルダを作成します。公式にもdefault.jsonを作成するようにありますが、こちらは何も指定しない場合に自動に読み込む設定ファイルで、自分で必要な環境分のjsonファイルを作成します。「development.json」「staging.json」「production.json」などと用意してやればいいでしょう。

中身はこんなイメージ。

こうして環境ごとのjsonファイルを用意しておけば、後のpm2にてオプション付きで起動することでdefault.jsonへその内容を上書き、それぞれのjsonファイルに記載した内容を読み込み実行する形になります。

pm2でオプションを指定し起動

上の方で通常「node app.js」と叩きアプリを起動するといいましたが、pm2を使った場合は以下のようにオプションを指定し、読み込むjsonファイルを指定し起動します。

これで、devemopment.json内に書かれた内容を元にアプリを起動します。jsonにはそれぞれ開発・本番ごとにデータベースやAPI URLの向き先が指定されているので、これで環境ごとに簡単に起動モードを切り分けることが出来るのです。

ちなみにnode-configは「const config = require(‘config’);」とするだけでそれぞれのjsonの中身を取得出来るので、

としてやるだけで、先ほどの環境設定ファイルであるjson(development.jsonなど)の中身を取得出来るため、ソース上で開発環境か本番環境かなどの分岐等、全く意識することなく処理を書けます。

サーバーサイドの開発は、どうしても開発、本番とサーバーをわけて開発することが多いので、こういった環境の切り替えは簡単に出来ると色々捗りますよね。

今日はここまで、それでは良い開発ライフを〜

スポンサーリンク
336 x 280 レクタングル(大)
336 x 280 レクタングル(大)