Gettting an undefined value from bcrypt hash function

Tags: , , ,

Ok, I’m getting an undefined value from a function, I don’t know why, I’m trying to get the value of a password hash for insert in the database, but the const that have the function has the value “undefined”, so what I should change in my code?

async postCompletedetails(req, res) {
  const company =;
  const name =;
  const password = req.params.password;
  const hashPass = await bcrypt.hash(password, saltRounds, function(err, hash) {
    if (err) {
      throw err
    } else {

  if (
    company !== undefined &&
    name !== undefined &&
    password !== undefined
  ) {

    const {
    } = req.headers;
    const decoded = jwt.verify(token, process.env.JWT_ACCOUNT_ACTIVATION);
    const 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",
  } else {
    return res.json({
      code: 400,
      message: "Bro hiciste algo mal",


When you call bcrypt.hash() and pass in a callback function, no Promise is returned. You can leave off that callback and then your await will work as you expect.

Basically, as is common with a lot of APIs, you can choose between the “old school” callback function approach or the more modern Promise/async model. One or the other, but not both at the same time.

Source: stackoverflow