validation多个Mongoose模式属性?

我试图做的经典事情,以确保用户的用户名不同于他们的密码,在Nodejs / Mongoose。

我认为使用单独的validationfunction会很好,但是我不知道如何去做。

到目前为止,我已经使用了Alex Young记事本教程中的模型代码 。 他创build了我重新使用的虚拟password属性。

我有如下的基本validation:

 function validatePresenceOf(value) { return value && value.length; } User = new Schema({ 'username': { type: String, validate: [ validatePresenceOf, 'a username is required', ], index: { unique: true } }, }); 

我将如何允许validation者访问其他属性?

您可以通过this.propertyToBeCalled调用模式的其他属性。

 schema.path('name').validate(function(v) { if (v === this.password) { return false; } else { return true; } }, 'my error type'); 

或者无论如何。