1
resposta

Função de validação de nome não funciona & Nome null

A função de validação de nome não está funcionando. Quando envio a requisição de POST, ao invés de mostrar a mensagem de erro, está permitindo a criação de um funcionário com o nome sendo salvo como nulo. O código da model está igual ao da aula:

'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')
        }
      }
    },
    ativo: DataTypes.BOOLEAN,
    email: {
      type: DataTypes.STRING,
      validate: {
        isEmail: {
          args: true,
          msg: 'dado do tipo e-mail inválido'
        }
      }
    },
    role: DataTypes.STRING
  }, { 
    paranoid: true,
    defaultScope: {
      where: { ativo: true }
    },  
    scopes: {
      todos: { where: {} },
      //etc: { constraint: valor }
    }
  })
  Pessoas.associate = function(models) {
    Pessoas.hasMany(models.Turmas, {
      foreignKey: 'docente_id'
    }) 
    Pessoas.hasMany(models.Matriculas, {
      foreignKey: 'estudante_id'
    })

  }
  return Pessoas
}
1 resposta

Segue abaixo trecho do código para validação do nome no sequelize.

nome: {
            type: Sequelize.STRING,
            allowNull: false,
            validate: {
                notNull : {
                    msg: 'O campo "Nome" é obrigatório.'
                },
                notEmpty : {
                    msg: 'O campo "Nome" é inválido ou vazio.'
                }
            }
        },