2013-01-11 22 views
6

Mam następujący kod, który sprawdza mój „czasowej” murawę:Mongoose walidacja asynchroniczny schemat nie działa

orgSchema.path('timezone').validate(function(value) { 
    return Timezone.findOne({_id: value}, "_id", function (err, timezone) { return false; }); 
}, "Please provide a valid timezone"); 

Pole jest zawsze mija, nawet kiedy dodać „return false” w funkcji najbardziej wewnętrznej. Wiem, że gdzieś brakuje callbacku - byłbym wdzięczny za pomoc.

Odpowiedz

9

Numer asynchronous validator musi zaakceptować drugi parametr, który jest wywołaniem zwrotnym, które musi wywołać w celu dostarczenia wyniku boolowskiego sprawdzania poprawności.

orgSchema.path('timezone').validate(function(value, callback) { 
    return Timezone.findOne({_id: value}, "_id", function (err, timezone) { 
    callback(timezone != null); 
    }); 
}, "Please provide a valid timezone"); 
+0

Jeszcze raz dziękuję, JohnnyHK! –

Powiązane problemy