I am new to async/await and I'm trying to set a 'user'-constant as the return value of a MySQL query in Node.js. However, the constant does not wait for the return value of the function. How do I use async and await to set 'user' to the return value of the SQL query?
// Should return a user object
const getUserByUsername = async (username, db) => {
  const QUERY = `SELECT * FROM ${table_name} WHERE username = '${username}'`;
    
    const user = await db.query(QUERY,
      async (err, result) => {
        if (!err) {
          console.log("name in SQL function: " + result[0].username);
          return await result[0];
        } else {
          console.log(err);
        }
      }
    );
    return user;
};
// Does stuff with the user object
const authenticateUser = async (username, password, done) => {
    const user = await getUserByUsername(username, db);
    console.log("name in main function: " + user.username);
    // Trying to do stuff with the user object...
  }
What I get in the terminal:
name in main function: undefined
UnhandledPromiseRejectionWarning: Error: data and hash arguments required
at Object.compare
at /app/node_modules/bcrypt/promises.js:29:12
at new Promise (<anonymous>)
at Object.module.exports.promise
etc.....
name in SQL function: john
 
     
    