74

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

このプロセスは面倒です。現在実行中の node.js インスタンスが cloud9ide にあるのか、それとも実際に私の製品の joyent smartmachine にあるのかを確認する方法はありますか?

node.js インスタンスが実行されているサーバーを (実行中のコードで) 判別できる場合は、prod または dev に値を設定する条件を追加します。

ありがとうございました

4

3 に答える 3

135

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

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アプリで環境をどのように検出しますか?

于 2012-05-22T09:27:49.857 に答える
16

環境を設定する最も簡単な方法は、コマンドライン引数をアプリケーションに渡すことだと思います。

node ./server.js dev

スクリプトでは、この引数を処理し、必要な構成を設定する必要があります。

var env = process.argv[2] || 'dev';
switch (env) {
    case 'dev':
        // Setup development config
        break;
    case 'prod':
        // Setup production config
        break;
}

また、構成プロセスを少し簡単にするモジュールを作成しました。多分それはあなたを助けるでしょう。

于 2012-05-22T03:12:34.647 に答える