I have some code like this:
let addUser = (req, res) => {
    let user;
    let message = "";
    let status = 200;
    bcrypt.hash(password, salt_rounds, (err, hash) => {
        user = new user({
            ...
            password: hash,
        });
        user.save(err => {
            if(err) {
                message = "No success";
                status = 400;
            } else {
                message = "success";
            }
        });
        res.status(status).json({
            message: message,
        });
    });
};
However, the message variable is undefined when the response is sent. I've been searching for a while now and, unfortunately, haven't been able to find a solution similar to this problem.
Ultimately, what I would like is to be able to update the message, status, etc. variables within the bcrypt/.save closures. I have tried using callbacks and resolving promises which I'm assuming didn't work due to naivety. Regardless, any solution would be appreciated!
Note: I would not like to use any other libraries to solve this problem (which I really doubt is required in the first place)
Thanks in advance!
 
     
    