2017-01-14 11 views
0

私はこのようなbeforeCreate方法行われている中でモデルTransactions持っている:私はその意志サービスEmailServiceを行っている。ここ実行帆のJSでのみ生産環境には、機能(ノードJSフレームワーク)

beforeCreate(values,cb){ 
    //I want this code to be run in just production enviroment, not in devlopement env 
    EmailService.sendMail(values.email,values.data); 
    cb(); 
} 

をユーザーにメールを送信します。しかし、私はこれを開発環境ではなくproduction enviromentでのみ有効にしたいと思います。

そして、私は唯一の生産的環境では、ないテスト環境には、トリガされなければならない他のイベントがたくさんあるので、私は、この行をコメントする必要はありません。これを行う方法?アプリケーションコードで

答えて

1

、あなたはこのように、access the environment through the global configことができます。sails.config.environment

beforeCreate(values,cb){ 
    // Production 
    if (sails.config.environment === "production") { 
     EmailService.sendMail(values.email,values.data); 
    } 
    cb(); 
} 

デフォルトでは、Sails.jsアプリケーションは開発環境で実行されます。あなたはsetting the NODE_ENV environment variableNODE_ENV=production node app.js)またはsails lift --prodを実行して、本番モードで実行することができます。ご希望の場合は

して、あなたはまた、代わりにconfig/local.jsに環境を設定するために選択することができます:私は帆を使用していないとき

module.exports = { 
    /*************************************************************************** 
    * The runtime "environment" of your Sails app is either typically   * 
    * 'development' or 'production'.           * 
    *                   * 
    * In development, your Sails app will go out of its way to help you  * 
    * (for instance you will receive more descriptive error and    * 
    * debugging output)              * 
    *                   * 
    * In production, Sails configures itself (and its dependencies) to  * 
    * optimize performance. You should always put your app in production mode * 
    * before you deploy it to a server. This helps ensure that your Sails * 
    * app remains stable, performant, and scalable.       * 
    *                   * 
    * By default, Sails sets its environment using the `NODE_ENV` environment * 
    * variable. If NODE_ENV is not set, Sails will run in the    * 
    * 'development' environment.            * 
    ***************************************************************************/ 

    // environment: process.env.NODE_ENV || 'development' 
    environment: 'production' 
} 
2
beforeCreate(values,cb){ 
    //I want this code to be run in just production enviroment, not in devlopement env 
    if (sails.config.environment === 'production') { 
    EmailService.sendMail(values.email,values.data); 
    } 
    cb(); 
} 
+0

それが動作します持ち上げ、私はノードapp.jsを使用していますか? –

+1

あなたの運用サーバー上の「生産」にNODE_ENV環境変数を設定する必要があります。ノードapp.jsを使用して帆アプリを実行します。とにかくセイルリフトは生産用のものではありません。 NODE_ENV =生産ノードapp.js:とlocalYアプリを実行することができ、それをテストするための –

関連する問題