Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/427.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 用bcrypt散列密码_Javascript_Mysql_Node.js_Bcrypt - Fatal编程技术网

Javascript 用bcrypt散列密码

Javascript 用bcrypt散列密码,javascript,mysql,node.js,bcrypt,Javascript,Mysql,Node.js,Bcrypt,我需要在数据库中插入密码之前对密码进行散列。我有bcrypt函数,但我不知道如何将其放入常量中,并使用它将其插入mysql 我使用的是bcrypt,那么我应该采用什么方法来对密码进行散列呢 async postCompletedetails(req, res) { const company = req.params.company; const name = req.params.name; const password = req.params.password;

我需要在数据库中插入密码之前对密码进行散列。我有bcrypt函数,但我不知道如何将其放入常量中,并使用它将其插入mysql

我使用的是bcrypt,那么我应该采用什么方法来对密码进行散列呢

  async postCompletedetails(req, res) {
    const company = req.params.company;
    const name = req.params.name;
    const password = req.params.password;
bcrypt.hash(password, saltRounds, (err, hash) => {
});



if (
  company !== undefined &&
  name !== undefined &&
  password !== undefined
) {
    
const { token } = req.headers;
const decoded = jwt.verify(token, process.env.JWT_ACCOUNT_ACTIVATION);
const id = decoded.id;

  const update = await pool.query(
    `UPDATE user SET Name_user= '${name}', password= '${password}' WHERE ID_user = ${id}`
  );
  const incompany = await pool.query(
    `INSERT INTO company (Name_company) VALUES ('${company}') `
  );

  const inrelcompany = await pool.query(
    `INSERT INTO rel_company_user (ID_company, ID_user) VALUES (LAST_INSERT_ID(), ${id})`
  );

  return res.json({
    code: 200,
    message: "todo bien... todo correcto y yo que me alegro",
    password,
  });
} else {
  return res.json({
    code: 400,
    message: "Bro hiciste algo mal",
  });
}

}

好的,我有,但问题是我无法获得哈希密码,hassPass的de值未定义,我应该更改什么

 const hashPass = await bcrypt.genSalt(saltRounds, function (err, salt) {
      if (err) {
        throw err
      } else {
        bcrypt.hash(password, salt, function(err, hash) {
          if (err) {
            throw err
          } else {
            console.log(hash)
          }
        })
      }
    })

密码正在被散列,我现在将其用于控制台.log

,这将不起作用,因为如果不等待
bcrypt.hash
,函数将是异步的,常量
hashPass
将是未定义的。这将对您有所帮助
 const hashPass = await bcrypt.genSalt(saltRounds, function (err, salt) {
      if (err) {
        throw err
      } else {
        bcrypt.hash(password, salt, function(err, hash) {
          if (err) {
            throw err
          } else {
            console.log(hash)
          }
        })
      }
    })