1
resposta

[Dúvida] 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?

1 resposta

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 :)