2013-01-11 24 views
6

が動作していない:マングース非同期スキーマ検証は、私は私の「タイムゾーン」フィールドを検証し、次のコードを持って

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

フィールドは常に私が最も内側の機能に「falseを返す」を追加した場合でも、通過しています。私はどこかでコールバックが欠けていることを知っています - 私はいくつかの助けに感謝します。

答えて

9

asynchronous validatorは、検証のブール結果を提供するためにコールする必要があるコールバックの2番目のパラメータを受け入れる必要があります。

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

ありがとう、JohnnyHK! –

関連する問題