【发布时间】:2013-04-28 13:33:29
【问题描述】:
我[node.js 和一般编程新手] 有两个mysql 查询结果(会员信息和会员可以参加的研讨会列表),需要将它们发送到res.render() 以在.jade 中呈现模板(会员编辑页面)。
为此,我使用了node-mysql 和mysql-queue 模块。问题是我不知道如何在queue.execute() 完成之前传递回调函数来呈现响应,所以我做了解决方法并将前两个查询放入队列(mysql-queue 功能),执行队列,然后添加第三个“dummy query”,它具有渲染模板的回调函数。
我的问题是我可以使用此解决方法吗?使用此模块的正确方法是什么?
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 });
})
};
【问题讨论】:
标签: node.js node-mysql