2011-09-10 29 views
5

Estoy tratando de hacer lo clásico de asegurarme de que el nombre de usuario de un usuario no sea el mismo que el de la contraseña, en Nodejs/Mongoose.¿Validar múltiples propiedades de esquema de Mongoose?

Estaba pensando que sería bueno usar una función de validación separada, pero no puedo encontrar la manera de hacerlo.

Hasta ahora he usado el model code from Alex Young's Notepad tutorial. Él crea una propiedad virtual password que he reutilizado.

Tengo validación básica de la siguiente manera:

function validatePresenceOf(value) { 
    return value && value.length; 
} 

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

¿Cómo voy a permitir que un validador para acceder a otras propiedades?

Respuesta

8

Puede llamar a propiedades adicionales del esquema a través de this.propertyToBeCalled.

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

O algo así de todos modos.

Cuestiones relacionadas