У меня [от новых до node.js
и программирования в целом] есть два результата запроса mysql
(информация о членах и список семинаров, на которых могут присутствовать участники) чтобы отправить их на номер res.render()
, который будет представлен в шаблоне .jade
(страница редактирования страницы).Отправка нескольких результатов запроса в res.render() с помощью node-mysql и mysql-queue
Для этого я использую модули node-mysql
и mysql-queue
. Проблема в том, что я не знаю, как передать функцию обратного вызова для отображения ответа до завершения queue.execute()
, поэтому я сделал обходной путь и поставил первые два запроса в очереди (функция mysql-queue), выполнил очередь, а затем добавил третий «фиктивный запрос ", который имеет функцию обратного вызова, которая отображает шаблон.
Мой вопрос: могу ли я использовать это обходное решение и что было бы правильным путем с помощью этих модулей?
exports.memberEdit = function (req, res) {
var q = connection.createQueue();
var membersResults,
htmlDateSigned,
htmlBirthDate,
servicesResults;
q.query("SELECT * FROM members WHERE id= ?;", req.id, function (err, results) {
console.log("Članovi: " + results[0]);
membersResults = results[0];
htmlDateSigned = dater.convertDate(results[0].dateSigned);
htmlBirthDate = dater.convertDate(results[0].birthDate);
});
q.query("SELECT * FROM services", function (err, results) {
console.log("Services: " + results);
servicesResults = results;
});
q.execute();
// dummy query that processes response after all queries and callback execute
// before execute() statement
q.query("SELECT 1", function (err,result) {
res.render('memberEdit', { title: 'Edit member',
query:membersResults,
dateSigned:htmlDateSigned,
birthDate:htmlBirthDate,
services:servicesResults });
})
};
Это работает, спасибо! –