我 [新手node.js
和一般编程] 有两个mysql
查询结果(成员信息和成员可以参加的研讨会列表),需要将它们发送到模板res.render()
中呈现(成员编辑页面)。.jade
为此,我正在使用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 });
})
};