显示Mongoose模型的多个验证错误

时间:2015-03-20 23:56:53

标签: node.js mongodb mongoose

如果我有这个架构:

var userSchema = Schema(
    {name : {
        type: String
    }
});

userSchema.path('name').validate(function(value) {
    return value.length > 4;
}, 'Name is too short');

userSchema.path('name').validate(function(value) {
    return hasNoNumbers(value);
}, 'Name cannot have numbers');

var User = mongoose.model('User', userSchema);

然后我创建一个这样的模型并运行validate函数:

var newUser = new User({name: '1da'});

newUser.validate(function(err) {
    console.log(err.errors.name);
})

这仅记录第一条错误消息“名称太短”。但是,name属性不符合两个验证要求。有没有办法显示错误信息?

谢谢

1 个答案:

答案 0 :(得分:1)

显然这个功能并没有在mongoose的v3中实现。

https://github.com/LearnBoost/mongoose/pull/1214#issuecomment-15746525

当v4稳定后,我会再试一次。

在此之前,该模块似乎解决了这个问题:

https://github.com/szdc/mongoose-validate-all