gpt4 book ai didi

node.js - Mongoose 自定义验证失败

转载 作者:太空宇宙 更新时间:2023-11-04 01:03:46 25 4
gpt4 key购买 nike

在我的应用程序中,我尝试在 Mongoose 上运行一些自定义验证,我想要的只是能够确保特定用户的评分不应超过一次,我已经尝试了一些方法,并且开头的代码正确返回 true 和 false,但不会触发错误。这是我的代码

RatingSchema.path('email').validate(function (email) {
var Rating = mongoose.model('Rating');
//console.log('i am being validated')
//console.log('stuff: ' + this.email+ this.item)
Rating.count({email: this.email, item: this.item},function(err,count){
if(err){
console.log(err);
}
else{
if(count===0){
//console.log(count)
return true;
}
else {
//console.log('Count: in else(failing)'+ count)
return false;
}
}
});
},'Item has been already rated by you')

最佳答案

定义 validator 时执行异步操作(如您的 Rating.count 调用),您的验证器函数需要接受第二个参数,该参数是您调用以提供 true 或 false 结果的回调,因为您不能只返回异步结果。

RatingSchema.path('email').validate(function (email, respond) {
var Rating = mongoose.model('Rating');
Rating.count({email: this.email, item: this.item},function(err,count){
if(err){
console.log(err);
}
else{
if(count===0){
respond(true);
}
else {
respond(false);
}
}
});
},'Item has been already rated by you');

关于node.js - Mongoose 自定义验证失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24938137/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com