[node.js
初心者でプログラミング全般] には 2 つのmysql
クエリ結果 (メンバー情報とメンバーが参加できるワークショップのリスト) があり、それらをテンプレート (メンバー編集ページ)res.render()
で提示するために送信する必要があります。.jade
これを行うには、モジュールを使用node-mysql
してmysql-queue
います。問題は、コールバック関数を渡して終了前に応答をレンダリングする方法がわからないことです。そのqueue.execute()
ため、回避策を講じ、最初の 2 つのクエリをキューに入れ (mysql-queue 機能)、キューを実行し、その後 3 番目の「ダミー クエリ」を追加しました。テンプレートをレンダリングするコールバック関数があります。
私の質問は、この回避策を使用できますか?このモジュールを使用する適切な方法は何ですか?
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 });
})
};