gpt4 book ai didi

node.js - Mongoose 唯一验证错误类型

转载 作者:IT老高 更新时间:2023-10-28 13:06:13 25 4
gpt4 key购买 nike

我正在将此模式与来自 npm 的 mongoose 3.0.3 一起使用:

var schema = new Schema({

_id: Schema.ObjectId,
email: {type: String, required: true, unique: true}

});

如果我尝试保存已在 db 中的电子邮件,我希望得到一个 ValidationError,就像省略了 required 字段一样。然而事实并非如此,我得到一个 MongoError: E11000 duplicate key error index

这不是验证错误(即使我删除了 unique:true 也会发生)。

知道为什么吗?

最佳答案

我更喜欢把它放在路径验证机制中,比如

UserSchema.path('email').validate(function(value, done) {
this.model('User').count({ email: value }, function(err, count) {
if (err) {
return done(err);
}
// If `count` is greater than zero, "invalidate"
done(!count);
});
}, 'Email already exists');

然后它将被包装到 ValidationError 中,并在您调用 validatesave 时作为第一个参数返回。

关于node.js - Mongoose 唯一验证错误类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13580589/

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