2017-12-20 15 views
0

Ich habe eine Validierungsfunktion, die zur Überprüfung der Inhaltslänge im Modell verwendet wird.Mehrere Parameter an die NodeJS-Validierungsfunktion übergeben

let contentLengthchecker = (content) => { 
    if(!content){ 
     return false; 
    }else{ 
     if(content.length < 5 || content.length > 100){ 
      return false; 
     }else{ 
      return true; 
     } 
    } 
}; 

Also, ich habe dies als Prüfung Feld auf dem Modellschema wie folgt ...

const titleValidators = [ 
    {validator: contentLengthchecker, message: 'Title length must be between 6 to 30 characters'} 
]; 

und setze das Array in dem Validator Feld auf dem Modell.

const adSchema = new Schema({ 
    title: {type: String, required: true, validate: titleValidators}, 
    description: {type: String, required: true, validate: descriptionValidators} 
}); 

So, jetzt will ich diese Funktion wenig wiederverwendbar machen. Also, ich schreibe es wie dieses

let contentLengthchecker = (content, minLength, maxLength) => { 
    if(!content){ 
     return false; 
    }else{ 
     if(content.length < minLength || content.length > maxLength){ 
      return false; 
     }else{ 
      return true; 
     } 
    } 
}; 

Aber jetzt bin ich kämpfen minLength und maxLenght Parameter zu übergeben. Ich habe keine Ahnung, wo ich sie in das Modellschema einfügen soll.

Also, wo zusätzliche Parameter zu setzen?

Antwort

0
const titleValidators = [{ 
    validator: contentLengthchecker, 
    message: 'Title length must be between 6 to 30 characters', 
    minLength: 6, 
    maxLength: 30 
}]; 


let contentLengthchecker = (content) => { 
if(!content){ 
    return false; 
}else{ 
    if(!this.minLength || !this.maxLength){ 
     throw 'minLength or maxLength is not specified'; 
    } 
    if(content.length < this.minLength || content.length > this.maxLength){ 
     return false; 
    }else{ 
     return true; 
    } 
} 

Ich denke, das sollte funktionieren.

+0

Danke, Ihre Antwort gibt einen Weg, es zu tun. Aber was ich suche ist, mehr Parameter an die Funktion zu übergeben ... :) – TharinduLucky

Verwandte Themen