2014-09-11 1 views
0

La question semble stupide, mais je ne peux pas trouver une réponse ...Mongoose validation pré-crochet vs SchemaType

Quelle est la différence entre la validation pré-crochet et validation SchemaType? J'ai d'abord utilisé le middleware pré-hook pour faire ma validation mais après avoir lu le doc j'ai vu que je pouvais faire de même sur schemaType.

J'appelle la validation SchemaType ce genre de validation:

var validateLogin = function (login, res) { 
    res(login === 'foo'); 
} 

var UserSchema = new Schema({ 
    login: { 
     type: String, 
     required: '{PATH} is required', 
     validate: [validateLogin, '{PATH} must be foo'] 
    } 
}); 

Dans le doc mangouste je peux voir.

La validation est définie dans la SchemaType

Est-ce que cela signifie que nous devrions utiliser la voie SchemaType autant que possible? Quelle est la différence réelle?

+0

Je ne peux penser qu'à la possibilité de valider le document à tout moment et pas seulement à la sauvegarde – Fougere

Répondre

0

Les validations SchemaType intégrées sont assez limitées dans ce qu'elles peuvent vérifier, bien qu'elles soient généralement suffisantes pour 80% ou plus de la validation que vous souhaitez effectuer.

Le crochet de pré-sauvegarde vous permet de faire des validations beaucoup plus complexes. Vous pouvez vérifier, en tant qu'exemple artificiel, qu'un nombre donné est premier ou divisible par 3.

Vous pouvez également vérifier la cohérence entre les champs. Par exemple, vous pourriez peut-être vérifier qu'un code postal/code postal correspond à l'état/à la province que l'utilisateur a saisi.