gpt4 book ai didi

node.js - 无法重新分配对象键值 - 我的语法是否不正确?

转载 作者:太空宇宙 更新时间:2023-11-03 23:13:26 24 4
gpt4 key购买 nike

我正在尝试使用 bcrypt 和 nodejs/express 实现注册表单。

正如您将在下面看到的,我尝试设置User.password = hash;,但由于某种原因,在将对象传递到 postgres 时,输入了未散列的密码。

下面的代码显示了一个微小的变化。我改了原来的

User.create({姓名、电子邮件、密码})

User.create({姓名、电子邮件、密码:哈希})

这在传递散列密码方面起作用,但对我来说没有意义......这不是必要的吗?我错过了什么?

任何帮助了解正在发生的事情将不胜感激。谢谢!

                        bcrypt.hash(newUser.password, salt, (err, hash) => {
if(err) throw err;
// Set password to hashed
User.password = hash;
console.log(hash);
// Save user
User.create({
name,
email,
password: hash
})
.then(user => {
res.redirect('/users/login')
})
.catch(err => console.log(err));
}))

最佳答案

因为 User 是(我相信)一个 Mongoose 模型,类似于 ECMAScript 6 中的类。直接在类本身上分配属性(这些是静态属性)不更改创建的项目。您正在做的是在 User 变量上创建一个新属性。

因此,为了使用简写属性表示法语法,您所需要做的就是使变量 password 等于 hash:

bcrypt.hash(newUser.password, salt, (err, hash) => {
let password = hash;
User.create(name, email, password)
.then(user => res.redirect("/users/login"))
.catch(err => console.log(err));

关于node.js - 无法重新分配对象键值 - 我的语法是否不正确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58515992/

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