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?

Garanta sua matrícula hoje e ganhe + 2 meses grátis

Continue sua jornada tech com ainda mais tempo para aprender e evoluir

Quero aproveitar agora
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 :)