6

「タイムゾーン」フィールドを検証する次のコードがあります。

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

最も内側の関数に「return false」を追加しても、フィールドは常に渡されます。どこかでコールバックが欠落していることはわかっています - 助けていただければ幸いです。

4

1 に答える 1

9

非同期バリデーターは、検証のブール結果を配信するために呼び出す必要があるコールバックである 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");
于 2013-01-11T04:51:25.000 に答える