2016-03-25 45 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 }); 

這種方法是不理想的或者是因爲I」 d寧願不必做任何包裝。所以,我想聽聽其他人是否已經解決了這個具體需​​求,如果是的話,採取了什麼方法。謝謝!

回答

1

你可以換鉤安裝本身:

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

這樣,它永遠不會被安裝在測試。

相關問題