我有以下代码验证我的“时区”字段:
orgSchema.path('timezone').validate(function(value) {
return Timezone.findOne({_id: value}, "_id", function (err, timezone) { return false; });
}, "Please provide a valid timezone");
即使我在最里面的函数中添加“return false”,该字段也总是在传递。我知道我错过了某个地方的回调 - 我会感激一些帮助。
答案 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");