2016-03-25 24 views
1

特定の環境でのみ特定のフックを実行したいと考えています。たとえば、画像処理を行うpost.saveがありますが、テスト中にこのフックを実行する必要はありません。環境固有のマングースミドルウェアを定義する方法はありますか?

FooSchema.post('save', function processImages() { 
    if (process.env.NODE_TESTING) return; 
    // do image processing 
}); 

しかし、私は直接フック自体にそのような状態を考慮していない希望:一つの解決策は、そうのようなフック自体にチェックを入れることであろう。もう一つの、より好ましいアプローチフックが、その後のように定義されるように、フックをラップし、環境のリストを受け入れ、別のパラメータを導入することです:私は「ので、このアプローチは、いずれかの理想的ではありません

FooSchema.post('save', function processImages() { 
    // do image processing 
}, { test: false, prod: true }); 

どんなラッピングをしなくてもかまいません。だから、私は、この特定の必要性が他の誰かによって対処されたかどうか、もしそうなら、どのようなアプローチがとられたのか聞いてみたいと思います。ありがとう!あなたはフックが自分自身をインストール包むことができ

答えて

1

if (!process.env.NODE_TESTING) { 
    FooSchema.post('save', function processImages() { 
    // do image processing 
    }); 
} 

この方法は、それがテストにインストールすることはないだろう。

関連する問題