I'm using javascript to fill a variable, but i'm having a problem getting the data back.
here is the code:
var invoice_email = function(req, res, clientObject, staffId, appointment, staff_template, client_template, callback){
//This step sets up all the variables in the locals object
var locals = [];
//This makes the query if StaffId has no email property
if (staffId[0].email !== undefined){
console.log('StaffID is an Object');
locals.staff = staffId[0];
} else {
var myStaff_id = staffId[0].toString();
User.findOne({roles: 'staff', _id: myStaff_id})
.select('_id email displayName profile_pic')
.exec(function(err, user) {
if (err) {
console.log(err);/*res.status(400).send({
message: errorHandler.getErrorMessage(err)
});*/
} else {
locals.staff = user;
}
});
}
console.log(locals.length);
console.log(locals);
};
I'm trying to get the 'locals' variable outside of the if-else statement but can't get it to return the locals variable. I know the function cycles, and then executes the if-else statement, but cant get the locals variable out, which is pretty annoying.
I've also tried using return locals
, but this wont do, as I'm calling the invoie_email function from another function and want to do more stuff in here before i return to the caller. Can anyone help?