Falha de validação do Mongoose ao usar set

Tome cuidado, se você usar set e validate em sua definição de esquema, o conjunto será executado primeiro. Se estiver retornando com uma string vazia, por exemplo, a validação não será executada e, portanto, não pode bloquear a criação do documento.

Então isso é RUIM, o validador NÃO rodará, porque set retorna com uma string vazia.

var mongoose = require('mongoose');
var schema = new mongoose.Schema({
phone
: {
type
: String,
validate
: function(_phone) {
_phone
= _phone.replace('+', '');
return !!(phoneValidator(_phone, 'HUN').length);
},
set: function(_phone) {
_phone
= _phone.replace('+', '');
return phoneValidator(_phone, 'HUN')[0];
}
}
}