Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.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,好的,我从一个函数中得到一个未定义的值,我不知道为什么,我试图得到一个密码散列的值,以便在数据库中插入,但是具有该函数的常量的值为“未定义”,那么我应该在代码中更改什么呢 async postCompletedetails(req, res) { const company = req.params.company; const name = req.params.name; const password = req.params.password; const hashPass

好的,我从一个函数中得到一个未定义的值,我不知道为什么,我试图得到一个密码散列的值,以便在数据库中插入,但是具有该函数的常量的值为“未定义”,那么我应该在代码中更改什么呢

async postCompletedetails(req, res) {
  const company = req.params.company;
  const name = req.params.name;
  const password = req.params.password;
  const hashPass = await bcrypt.hash(password, saltRounds, function(err, hash) {
    if (err) {
      throw err
    } else {
      console.log(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= '${hashPass}' 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",
      hashPass,
      password
    });
  } else {
    return res.json({
      code: 400,
      message: "Bro hiciste algo mal",
    });
  }
}

调用
bcrypt.hash()
并传入回调函数时,不会返回任何承诺。您可以停止该回调,然后您的
wait
将按预期工作


基本上,与许多API一样,您可以在“老式”回调函数方法或更现代的Promise/
async
模型之间进行选择。一个或另一个,但不能同时两个。

当调用
bcrypt.hash()
并传入回调函数时,不会返回任何承诺。您可以停止该回调,然后您的
wait
将按预期工作


基本上,与许多API一样,您可以在“老式”回调函数方法或更现代的Promise/
async
模型之间进行选择。一个或另一个,但不是同时两个。

这就是我想要的答案,非常感谢,实际上,我用它简化了我的代码这就是我想要的答案,非常感谢,实际上,我用它简化了我的代码