在Mongoose中验证之前使用.pre

时间:2014-03-14 20:13:33

标签: mongoose

我正在创建一个名为User的模型。没什么新鲜的。我的一个字段设置为required但我想在保存时使用pre函数设置它。类似于:

UserSchema.pre('save', function(callback){
    if(this.isNew){
        this.defaultId = this.ids[0];
    }

    callback();
});

唯一的问题是在pre之前触发验证并触发验证错误。有没有解决的办法。无论如何都不必pre完成此操作 中的是可以接受的。

1 个答案:

答案 0 :(得分:1)

您可以使用Mongoose的validate生命周期事件,以便在Mongoose验证之前执行任何操作。这是看起来的样子:

UserSchema.pre('validate', function(callback){
    if(this.isNew){
        this.defaultId = this.ids[0];
    }

    callback();
});