2016-03-30 3 views
0

Mon modèle AttributsVoiles Waterline Attributs du modèle type de validation 'entier', 'float' échoue

per: { type: 'float', required: true }, typeid: { type: 'integer', required: true },

Mon entrée

{ per: '5GH', typeid: '6SD', }

Je pense cela devrait échouer et obtenir un message d'erreur quelque chose comme

typeid: [ { rule: 'integer', message: 'undefined should be a integer

Mais sur la validation o/p après validation

{ per: 5, typeid: 6, }

Devons-nous valider manuellement entier et flotter dans ce cas?

Répondre

2

Official Sails Doc for Validation

Comme dans la documentation que vous pouvez voir que l'enregistrement de validation entier pour entier, ainsi que la chaîne de validation.

D'après ce que j'ai connu avec la validation

Pour valider un usage strictement int, decimal en place de integer, float

problème

avec votre scène est comme suit.

a=5  =>integer in a 
a="5" =>string but the integer value is 5 
a="5a4" =>string but integer value is 5 not 54 

a="a5" =>string and no integer value.Only this case will fail on validation rule 

Si vous voulez valider strictement les attributs selon vous la règle personnalisé, vous pouvez ajouter règle validation personnalisée dans votre models.See le code ci-dessous:

module.exports = { 
    attributes: { 
     name: { 
      type:'string' 
     }, 
     mail: { 
      type:'string', 
      defaultsTo:'a' 
     }, 
     age:{ 
      type:'string', 
      isInt:true 
     } 
    }, 
    types:{ 
     isInt:function(value){ 
      console.log(value); 
      if(typeof value==='number' && value=== Math.floor(value)){ 
       console.log('value is a number'); 
       return true; 
      } 
      if(!isNaN(1*value)){ 
       console.log(value); 
       return true; 
      } 
      return false; 
     } 
    } 
}; 

Ainsi, pour chaque modèle vous devez écrire un validateur personnalisé. Et

Je crois qu'il ya maintenant moyen actuellement d'écrire validation globale personnalisée règle afin que vous puissiez appliquer votre validation sur les attributs de différents modèles en écrivant la validation au niveau mondial.

enter image description here

enter image description here

+0

Merci. Cela fonctionne .. @ waza007 – Max

+0

Bienvenue et continuez à demander! – vkstack