mongoose获取模型验证失败而不是自定义错误消息

时间:2015-06-19 18:32:49

标签: mongoose

我确定问题出在密码验证器上,因为如果我将其注释掉,那么文档就会被插入。此外,如果我输入有效的密码,一切正常。这是我的整个UserSchema

Object.prototype

我遇到的这个问题是,而不是我的自定义错误消息

var UserSchema = new Schema({
    firstName: String,
    lastName: String,
    email: {
        type: String,
        unique: true,
        match: /.+\@.+\..+/
    },
    website: {
        type: String,
        set: urlModifier
    },
    username: {
        type: String,
        trim: true,
        required: true,
        unique: true
    },
    password: {
        type: String,
        validate: [
          function(password) {
            return password.length >= 6;
          },
        'Password should be longer'
    ]
    },
    createdAt: {
        type: Date,
        default: Date.now
    },
    role: {
        type: String,
        enum: ['admin', 'owner', 'user']
    }
});

Mongoose版本是^ 4.05

不确定这是否是一个错误,API中的某些内容发生了变化,或者我做错了什么。

1 个答案:

答案 0 :(得分:0)

在我正在学习的特定教程中没有提到这一点。

http://mongoosejs.com/docs/validation.html

自定义错误消息在返回到控制器中的save(err)函数的验证错误对象中可用为错误。

基本

user.save(function(err){     if(错误){             返回下一个(错误);         } else {             res.json(用户);         }     });

将返回默认错误消息“用户验证失败”

user.save(function(err) {
        if(err) {
            console.log(err.errors.password.message);
            return next(err);
        } else {
            res.json(user);
        }
    });

将返回自定义错误消息