Я пытаюсь проверить схему mon goose, но я не смог понять одну вещь, которая является проверкой типа. Я передаю числовой тип строковому полю и ожидаю, что он потерпит неудачу при проверке, но он пройдет. как это происходит, кто-нибудь может объяснить, пожалуйста, логику c за этим?
образец. js
const mongoose = require('mongoose');
async function validateSample(sample) {
try {
await sample.validate();
return true;
} catch (error) {
return false;
}
}
async function execMethod(){
var userSchema = new mongoose.Schema({
phone: {
type: String,
minlength: 2,
maxlength: 4,
validate: {
validator: function(v) {
return /^\d+$/.test(v);
},
message: `not a valid phone number!`
},
required: [true, 'User phone number required']
}
});
var User = mongoose.model('user', userSchema);
var validUser = new User({phone: '1234'});
var invalidUser = new User({phone: 1235});
const result = await validateSample(validUser);
const result1 = await validateSample(invalidUser);
console.log(result); // true
console.log(result1) // expected false as number type is assigned to phone. But returns true, why?
}
execMethod()