gpt4 book ai didi

javascript - 为什么在向其添加 .methods 时,我的 var 返回为 undefined?

转载 作者:行者123 更新时间:2023-12-03 22:38:26 25 4
gpt4 key购买 nike

我正在尝试将 bycrypt 添加到身份验证表中,但是在尝试添加 generateHash 和 validPassword 方法时,我收到一个错误,即 authTable 未定义。我对 authTables.methods 部分有什么不理解的地方吗?

当我注释掉 generateHash 和 validPassword 部分时,代码会起作用,这让我相信 .methods 是挂断电话。

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 bcrypt.compareSync(password, this.local.password);
};

return authTable;
}

我希望这会使用加密密码进入数据库中的表。

我收到的错误是:

类型错误:无法设置未定义的属性“generateHash”。

类型错误:无法设置未定义的属性“validPassword”

最佳答案

I'm getting an error that authTable is undefined



不,你没有。您会收到 authTable.methods 未定义的错误。
define 返回 Model 的一个实例,正如您在 the documentation of Model 中看到的,它没有名为 methods 的属性,因此, authTable.methods 将评估为 undefined

关于javascript - 为什么在向其添加 .methods 时,我的 var 返回为 undefined?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54603512/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com