Mongoose异步模式验证不起作用

时间:2013-01-11 04:28:27

标签: mongoose

我有以下代码验证我的“时区”字段:

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

即使我在最里面的函数中添加“return false”,该字段也总是在传递。我知道我错过了某个地方的回调 - 我会感激一些帮助。

1 个答案:

答案 0 :(得分:9)

asynchronous validator需要接受第二个参数,它必须调用它才能传递验证的布尔结果。

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