Attualmente sto usando pre('save')
di fare la convalida:La differenza di mangusta tra pre-salvare e convalidare? Quando usare quale?
UserSchema.pre('save', true, function(next, done) {
var self = this //in case inside a callback
var msg = helper.validation.user.username(self.username)
if (msg) {
self.invalidate('username', msg)
done(helper.getValidationError(msg))
}
else
done()
next()
})
Il modulo aiutante ha una funzione che accetta un input e restituisce il messaggio di errore.
exports.user = {
username: function(input) {
if (!input)
return 'username is required'
var min = 3
var max = 10
if (input.length < min)
return 'username min of length is ' + min
if (input.length > max)
return 'username max of length is ' + max
return null
}
}
C'è un'altra API validate
per fare cose simili. Qual è la differenza tra loro e quale dovrei usare in quali casi?
Si prega di modificare la risposta, in quanto è fuorviante. Il problema chiuso termina con una [nota] (https://github.com/Automattic/mongoose/issues/400#event-14349225) che i validatori devono eseguire prima dei pre-hook, come avviene ora. –
@TalhaAwan .. grazie per avermi informato .. lo modificherò –