我的 bcrypt.js 散列 returns 未定义,而所有其他输入都很好
My bcrypt.js hash returns undefined while all other inputs are fine
下面的代码returns 输入密码未定义,但所有其他输入都可以。我不知道该怎么办,如果有人能帮忙的话。
我正在使用 bcrypt.js 和 psql 的 knex。
app.post("/register", (req, res) => {
const { email, name, password } = req.body;
let salt = bcrypt.genSaltSync(10);
let hash = bcrypt.hashSync(password, salt);
knex
.transaction((trx) => {
trx
.insert({
hash: bcrypt.hashSync(password, salt),
email: email,
})
.into("login")
.returning("email")
.then((loginEmail) => {
return trx("users")
.returning("*")
.insert({
email: loginEmail[0].email,
name: name,
joined: new Date(),
})
.then((user) => {
res.json(user[0]);
});
})
.then(trx.commit)
.catch(trx.rollback);
})
.catch((err) => res.status(400).json("E-mail is already in use"));
});
*P.S。使用邮递员不会出错。后端终端出现的错误是 Error: Illegal arguments: undefined, string
意思是 hash is undefined
我修复了它,显然是一个变量命名问题 :) 太蠢了。
密码实际上是作为“哈希”从前端接收的,将其更改为哈希并将哈希更改为 hashedPassword。
const { email, name, hash } = req.body;
let salt = bcrypt.genSaltSync(10);
let hashedPassword = bcrypt.hashSync(hash, salt);
knex
.transaction((trx) => {
trx
.insert({
hash: hashedPassword,
email: email,
})
下面的代码returns 输入密码未定义,但所有其他输入都可以。我不知道该怎么办,如果有人能帮忙的话。
我正在使用 bcrypt.js 和 psql 的 knex。
app.post("/register", (req, res) => {
const { email, name, password } = req.body;
let salt = bcrypt.genSaltSync(10);
let hash = bcrypt.hashSync(password, salt);
knex
.transaction((trx) => {
trx
.insert({
hash: bcrypt.hashSync(password, salt),
email: email,
})
.into("login")
.returning("email")
.then((loginEmail) => {
return trx("users")
.returning("*")
.insert({
email: loginEmail[0].email,
name: name,
joined: new Date(),
})
.then((user) => {
res.json(user[0]);
});
})
.then(trx.commit)
.catch(trx.rollback);
})
.catch((err) => res.status(400).json("E-mail is already in use"));
});
*P.S。使用邮递员不会出错。后端终端出现的错误是 Error: Illegal arguments: undefined, string
意思是 hash is undefined
我修复了它,显然是一个变量命名问题 :) 太蠢了。
密码实际上是作为“哈希”从前端接收的,将其更改为哈希并将哈希更改为 hashedPassword。
const { email, name, hash } = req.body;
let salt = bcrypt.genSaltSync(10);
let hashedPassword = bcrypt.hashSync(hash, salt);
knex
.transaction((trx) => {
trx
.insert({
hash: hashedPassword,
email: email,
})