2011-09-10 19 views
5

Sto cercando di fare la cosa classica per assicurarmi che il nome utente di un utente non sia lo stesso della sua password, in Nodejs/Mongoose.Convalida di più proprietà dello schema Mongoose?

Stavo pensando che sarebbe stato utile utilizzare una funzione di convalida separata, ma non riesco a capire come farlo.

Finora ho utilizzato il model code from Alex Young's Notepad tutorial. Crea una proprietà virtuale password che ho riutilizzato.

io ho la convalida di base come segue:

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

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

Come dovrei permettere un validatore per accedere altre proprietà?

risposta

8

È possibile chiamare proprietà aggiuntive dello schema tramite this.propertyToBeCalled.

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

O comunque qualcosa del genere.

Problemi correlati