2016-03-25 21 views
1

Sadece belirli ortamlarda belirli kancaları çalıştırabilmek isterim. Örneğin, görüntü işleme yapan bir post.save sahibiyim, ancak bu çengelin test sırasında çalışmasına hiç ihtiyacım yok.Çevreye özgü mongoose katman yazılımını tanımlamanın bir yolu var mı?

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

Ama kanca kendisinde böyle devlet hesaba doğrudan tercih ederim: Tek çözüm şöyle kanca kendisi bir onay koymak olacaktır.

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

Bu yaklaşım ideal değildir ya ben çünkü: kancalar sonra gibi tanımlanabilir böylece başka, daha tercih edilebilir bir yaklaşım, kanca sarın ve ortamlarda listesini kabul başka bir parametre, tanıtmak olacaktır d herhangi bir paketleme yapmamayı tercih eder. Yani, bu özel ihtiyacın başka biri tarafından ele alınıp alınmadığını ve eğer öyleyse, hangi yaklaşımın alındığını duymak isterim. Teşekkürler!

cevap

1

Sen kanca kendisini yüklemek sarabilirdiniz:

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

Bu şekilde, test kurulabilir asla.

İlgili konular