最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

Mongoose唯一验证错误类型

运维笔记admin12浏览0评论

Mongoose唯一验证错误类型

Mongoose唯一验证错误类型

我正在使用来自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时它将作为第一个参数返回。

与本文相关的文章

发布评论

评论列表(0)

  1. 暂无评论