2016-12-17 3 views
0
key: { 
    type: 'String', 
    required: [true, 'Required'], 
    trim: true 
} 

validieren Immer, wenn ich es mit benutzerdefinierten Validator validieren, wandelt es in „String“, die Ergebnisse in immer gültiger Typ. Wie "Schlüssel" sollte nur "String" akzeptieren, wenn "Nummer" sollte es Validierung werfen, anstatt es zu werfen.Wie kann ich Typ in Mungo benutzerdefinierten Validator

Antwort

0

Sie können die Validierungsfunktion an das Validator-Objekt des Mongoose-Schemas übergeben. Siehe unten das Beispielschema, das über eine benutzerdefinierte Validierungsfunktion zur Validierung des Telefonnummernschemas verfügt.

var userSchema = new Schema({ 
    phone: { 
    type: String, 
    validate: { 
     validator: function(v) { 
     return /\d{3}-\d{3}-\d{4}/.test(v); 
     }, 
     message: '{VALUE} is not a valid phone number!' 
    }, 
    required: [true, 'User phone number required'] 
    } 
}); 

und diese Validierung kann durch die Behauptung

var User = db.model('user', userSchema); 
var user = new User(); 
var error; 

user.phone = '555.0123'; 
error = user.validateSync(); 
assert.equal(error.errors['phone'].message, 
    '555.is not a valid phone number!'); 

Sie Ihren eigenen Regulärer Ausdruck mit dem, was dem Muster, das Sie die Zeichenfolge sollten wollen können getestet werden müssen übereinstimmen.

+0

Bitte lesen Sie die Frage sorgfältig – Moniv

Verwandte Themen