为什么加入。方法,就当我无功返回未定义?
我试图bycrypt添加到认证表,但我得到一个错误,authTable试图添加generateHash和validPassword方法时,是不确定的。是否有什么我不理解有关authTables.methods部分?
当我注释掉generateHash和validPassword部分,导致我相信。方法是挂断代码工作。
var bcrypt = require("bcryptjs");
module.exports = function (sequelize, DataTypes) {
var authTable = sequelize.define("authTable", {
username: {
type: DataTypes.STRING,
allowNull: false,
validate: {
len: [1, 30]
}
},
password: {
type: DataTypes.STRING,
allowNull: false,
validate: {
len: [6, 20]
}
},
email: {
type: DataTypes.STRING,
allowNull: false,
validate: {
isEmail: true,
len: [1]
}
}
});
authTable.methods.generateHash = function(password) {
return bcrypt.hashSync(password, bcrypt.genSaltSync(10), null);
};
authTable.methods.validPassword = function(password) {
return bcryptpareSync(password, this.local.password);
};
return authTable;
}
我希望这个去表加密口令的数据库中。
我收到的错误是:
类型错误:未定义无法设置属性“generateHash”。
类型错误:未定义无法设置属性“validPassword”
回答如下:我得到一个错误,authTable未定义
不,你不知道。你得到一个错误,authTable.methods
是不确定的。
define
返回Model
的一个实例,你可以在the documentation of Model
看到,它不具有methods
属性命名,ERGO,authTable.methods
将评估为undefined
。