A validação personalizada foi feita utilizando dado. Como o sequelize sabe que é para validar especificamente o nome?
A validação personalizada foi feita utilizando dado. Como o sequelize sabe que é para validar especificamente o nome?
Oi, Marcos, tudo bem? Nos desculpe a demora a responder.
O sequelize sabe que deve validar o nome porque a função validadora foi criada dentro da propriedade nome
do objeto de criação do modelo de Pessoas, como podemos revisar no código abaixo:
'use strict'
module.exports = (sequelize, DataTypes) => {
const Pessoas = sequelize.define('Pessoas', {
nome: {
type: DataTypes.STRING,
validate: {
funcaoValidadora: function(dado) {
if (dado.length < 3) throw new Error('o campo nome deve ter mais de 3 caracteres')
}
}
},
// outras propriedades...
})
return Pessoas
}
A propriedade validate
do objeto nome
aceita a sintaxe específica acima. Dentro do objeto validate
, ao declarar uma função que recebe um parâmetro (o qual podemos chamar do que quiser, nesse caso foi dado
, mas poderia ser valor
, por exemplo), o Sequelize automaticamente atribui a esse parâmetro o valor passado para a propriedade nome
.
Espero ter ajudado! Abraços e bons estudos :)