データベースから取得した 'projects'のページをレンダリングしようとしています。ユーザー、自分が所有するプロジェクト、およびメンバーであるプロジェクトに関する2種類のプロジェクトがあります。2つのMongoDBデータベースクエリが完了したときにのみページをレンダリングする
私は2つの非同期データベースクエリを使用していますが、それらは異なる時間に終了する可能性があり、ページを両方とも完成させたいだけです。
質問: データベーストランザクションが完了するまで、レンダリングをどのように延期できますか?
var username = req.session.username;
var memberProjects = [];
var ownerProjects = [];
var membersQuery = false;
var ownerQuery = false;
projects.find({"members.username" : username}).toArray(function(err, results)
{
for(var i = 0; i < results.length; i++)
{
var project = {
title : results[i].title,
id : results[i]._id
}
memberProjects[i] = project;
}
membersQuery = true;
});
projects.find({owner : req.session.username}).toArray(function(err, results)
{
for(var i = 0; i < results.length; i++)
{
var project = {
title : results[i].title,
id : results[i]._id
}
ownerProjects[i] = project;
}
ownerQuery = true;
});
if(membersQuery && ownerQuery)
{
res.render('project', {
ownerProjects : ownerProjects,
memberProjects : memberProjects
});
}