尝试使用 bcrypt 将用户保存到 mySql 中。但返回错误:需要数据和盐参数

编程入门 行业动态 更新时间:2024-10-04 05:33:00

尝试使用 bcrypt 将用户保存到 mySql 中。但返回<a href=https://www.elefans.com/category/jswz/34/1771449.html style=错误:需要数据和盐参数"/>

尝试使用 bcrypt 将用户保存到 mySql 中。但返回错误:需要数据和盐参数

尝试使用 bcrypt 将用户保存到 mySql 中。但返回错误:需要数据和盐参数。

这是我的代码

授权控制器:

export const register = (req, res) => {
//CHECK EXISTING USER
const q = "SELECT * FROM user WHERE email = ? OR username = ?";

db.query(q, [req.body.email, req.body.username], (err, data) => {
    if (err) return res.status(500).json(err);
    if (data.length) return res.status(409).json("User already exists!");

    //Hash the password and create a user
    const salt = bcrypt.genSaltSync(10);
    const hash = bcrypt.hashSync(req.body.password, salt);

    const q = "INSERT INTO users(`username`,`email`,`password`) VALUES (?)";
    const values = [req.body.username, req.body.email, hash];

    db.query(q, [values], function (err, data) {
        if (err) return res.status(500).json(err);
        return res.status(200).json("User has been created.");
    });
  });

};

如你所见,我已经定义了salt和hash by

const salt = bcrypt.genSaltSync(10);
 const hash = bcrypt.hashSync(req.body.password, salt);

所以我不知道为什么返回 Error: data and salt arguments required.

这里是返回的错误:

错误:需要数据和盐参数 在 Object.hashSync (/Users/rickyyeung/Desktop/nodejsProject/rick20230510booking/api/node_modules/bcrypt/bcrypt.js:91:15) 在查询。 (文件:///Users/rickyyeung/Desktop/nodejsProject/rick20230510booking/api/controllers/auth.js:14:27) 在查询。 (/Users/rickyyeung/Desktop/nodejsProject/rick20230510booking/api/node_modules/mysql/lib/Connection.js:526:10) 在 Query._callback (/Users/rickyyeung/Desktop/nodejsProject/rick20230510booking/api/node_modules/mysql/lib/Connection.js:488:16) 在 Query.Sequence.end (/Users/rickyyeung/Desktop/nodejsProject/rick20230510booking/api/node_modules/mysql/lib/protocol/sequences/Sequence.js:83:24) 在 Query._handleFinalResultPacket (/Users/rickyyeung/Desktop/nodejsProject/rick20230510booking/api/node_modules/mysql/lib/protocol/sequences/Query.js:149:8) 在 Query.EofPacket (/Users/rickyyeung/Desktop/nodejsProject/rick20230510booking/api/node_modules/mysql/lib/protocol/sequences/Query.js:133:8) 在 Protocol._parsePacket (/Users/rickyyeung/Desktop/nodejsProject/rick20230510booking/api/node_modules/mysql/lib/protocol/Protocol.js:291:23) 在 Parser._parsePacket (/Users/rickyyeung/Desktop/nodejsProject/rick20230510booking/api/node_modules/mysql/lib/protocol/Parser.js:433:10) 在 Parser.write (/Users/rickyyeung/Desktop/nodejsProject/rick20230510booking/api/node_modules/mysql/lib/protocol/Parser.js:43:10) rickyyeung@Rickys-MacBook-Air api %

回答如下:

更多推荐

尝试使用 bcrypt 将用户保存到 mySql 中。但返回错误:需要数据和盐参数

本文发布于:2024-05-31 03:55:47,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1771246.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:错误   参数   数据   用户   bcrypt

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!