1. ホーム
  2. javascript

node.jsのインスタンスがdevなのかproductionなのかを確認する

2023-11-07 08:44:51

質問

現在、私はnode.jsサーバーを本番サーバーにデプロイしたいときはいつでも、データベースと外部APIへのさまざまな接続のために、すべてのIP/DNS/ユーザー名/パスワードを変更する必要があります。

現在稼働中のnode.jsインスタンスがcloud9ideにあるのか、それとも本番のjoyent smartmachineにあるのかを確認する方法はないのでしょうか?

もし、私のnode.jsインスタンスがどのサーバーで動作しているのか(実行中のコードで)判断できるのであれば、prodまたはdevに値を設定する条件を追加します。

ありがとうございます。

どのように解決するのですか?

通常、本番環境ではこのようにnodeアプリを実行する必要があります。

NODE_ENV=production node app.js

Express、Socket.IOなどを利用したアプリケーション process.env.NODE_ENV を使って環境を把握します。

開発時にはこれを省略し、普通に node app.js .

このようにコードの中で環境を検出することができます。

var env = process.env.NODE_ENV || 'development';
loadConfigFile(env + '.json', doStuff);

リソース

express.jsのアプリで環境を検出するにはどうしたらいいですか?