Sequelize classMethods vs instanceMethods
Então, iniciando minha aventura em todas as coisas. Uma das ferramentas que estou tentando aprender é Sequelize. Então, vou começar o que estava tentando fazer:
'use strict';
var crypto = require('crypto');
module.exports = function(sequelize, DataTypes) {
var User = sequelize.define('User', {
username: DataTypes.STRING,
first_name: DataTypes.STRING,
last_name: DataTypes.STRING,
salt: DataTypes.STRING,
hashed_pwd: DataTypes.STRING
}, {
classMethods: {
},
instanceMethods: {
createSalt: function() {
return crypto.randomBytes(128).toString('base64');
},
hashPassword: function(salt, pwd) {
var hmac = crypto.createHmac('sha1', salt);
return hmac.update(pwd).digest('hex');
},
authenticate: function(passwordToMatch) {
return this.hashPassword(this.salt, passwordToMatch) === this.hashed_pwd;
}
}
});
return User;
};
Estou confuso sobre quando usarclassMethods
vsinstanceMethods
. Para mim quando penso emcreateSalt()
ehashPassword()
devem ser métodos de classe. Eles são gerais e, na maioria das vezes, realmente não têm nada a ver com a instância específica em que são usados em geral. Mas quando eu tivercreateSalt()
ehashPassword()
noclassMethods
Eu não posso ligar para eles deinstanceMethods
.
Eu tentei variações do seguinte:
this.createSalt();
this.classMethods.createSalt();
createSalt();
Algo como abaixo não funcionará e provavelmente não estou entendendo algo simples.
authenticate: function(passwordToMatch) {
console.log(this.createSalt());
return this.hashPassword(this.salt, passwordToMatch) === this.hashed_pwd;
}
Quaisquer dicas / dicas / direção seria muito apreciada!