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

Всякий раз, когда я проверить его с валидатора, он превращается в «String», который приводит всегда действительного типа. Как «ключ», должен принимать только «String», если «Number» должен выдать валидацию вместо ее литья.Как я могу проверить тип в мангуст валидатора

ответ

0

Вы можете передать функцию проверки на объект валидатора схемы мангуста. См. Ниже пример схемы, которая имеет функцию пользовательской проверки для проверки схемы телефонного номера.

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'] 
    } 
}); 

и эта проверка может быть проверена путем утверждения

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!'); 

вы можете иметь свой собственный Регулярное выражение для соответствия с тем, что шаблон вы хотите строка должна быть.

+0

внимательно прочитайте вопрос – Moniv