I have this function:
function getNumOfSessionForTrainerClientList(req, res, rows, allowedToAddMoreClients, alertMessage) {
let sessionData2 = null
var getNumOfSessionForTrainerClientList = "select * from SCHEDULE WHERE CLIENT_USERNAME = ? AND ASSIGNED_TRAINER = ?"
mysqlconn.connect(function(err) {
if (err) {
console.error('Database connection failed: ' + err.stack);
return;
}
for (var i = 0; i < rows.length; i++) {
mysqlconn.query(getNumOfSessionForTrainerClientList, [rows[i].USERNAME, req.session.username], function(err, sessionData) {
if (err) {
console.log(err);
} else {
sessionData2 = sessionData
}
})
}
})
res.render('trainerclientlist.ejs', {data: rows, trainerFirstName: req.session.firstname, trainerLastName: req.session.lastname, allowedToAddMoreClients: allowedToAddMoreClients, profilePhoto: req.session.profilePhoto, alertMessage: req.session.selectedalertmessage, sessionData: sessionData2})
}
what this does is uses the results from another function, defined in rows
, and then loops through them and queries my other table. However, I cannot figure out for the life of me how to pass the returned data sessionData
to the front end (ejs). I am trying to pass all of the results and all the data inside the returned objects, but it is not working. On the front end, when I log sessionData.length
, it returns length 0
. How can i achieve this?