gpt4 book ai didi

javascript - 在 Sequelize 模型问题中 Hook 'beforeUpdate'

转载 作者:行者123 更新时间:2023-11-30 20:28:13 24 4
gpt4 key购买 nike

我正在使用 nodejs/express/sequelize 开发 API。

实际上是在我创建用户帐户时。由于 bcrypt,我得到了一个 Hook 'beforeCreate' 来散列用户密码:

User.hook('beforeCreate', (user) => {
if (user.password) {
user.password = bcrypt.hashSync(user.password, bcrypt.genSaltSync(10), null);
}
});

其中user.password是我注册时提供的密码。

这部分运行良好。

其次,我获得了更新此用户帐户的功能。逻辑上我添加了一个引擎盖'beforeUpdate':

User.hook('beforeUpdate', (user) => {
console.log(user);
if (user.password) {
user.password = bcrypt.hashSync(user.password, bcrypt.genSaltSync(10), null);
}
});

但我遇到了一个问题,因为 user.password 不是我在 PATCH 请求中提供的数据,而是我数据库中的散列密码。

我猜这是模型密码而不是实例密码...我不知道。如果有人可以帮助我获取查询值,那就太好了。

最佳答案

您可以使用_previousDataValues

User.hook('beforeUpdate', (user) => {
console.log(user);
if (user.password) {
user.password = bcrypt.hashSync(user.previous.password, bcrypt.genSaltSync(10), null);
}
});

关于javascript - 在 Sequelize 模型问题中 Hook 'beforeUpdate',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50648024/

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