Olá estou com uma dúvida sobre a funcionalidade do hook
e class
methods
, pesquisei quando utilizar e estou um pouco confuso, Quando utilizar eles?
Tenho um exemplo de um model:
const bcrypt = require('bcrypt');
module.exports = (sequelize, DataType) => {
const User = sequelize.define('tb_users', {
name: {
type: DataType.STRING,
allowNull: false,
validate: {
notEmpty: true
}
},
email: {
type: DataType.STRING,
allowNull: false,
unique:true,
validate: {
isEmail: true,
notEmpty: true
}
},
password: {
type: DataType.STRING,
allowNull: false,
validate: {
notEmpty: true
}
}
},
{
hooks:{
beforeCreate: user => {
const salt = bcrypt.genSaltSync();
user.set('password',bcrypt.hashSync(user.password,salt));
console.log(user.password);
}
},
classMethods:{
isPassword: (encodedPassword, password) => bcrypt.compareSync(password, encodedPassword)
}
});
return User;
};
Que eu adiciono o meu hash
a minha password antes de criar, eu poderia colocar nesse before, uma validação (sobre existir um login já criado no banco de dados)?
Se alguém puder me esclarecer qual o uso principalmente do classMethods
e como eu poderia chamar ele no meu controller
.