我正在使用Node.js和Sequelize(具有Postgres后端)构建网站。我有一个查询返回许多带外键的对象,我想将外键所引用的对象列表传递给视图。
在这个例子中,Attendances包含Hackathon键,我想返回一个Hackathons列表。由于代码是异步的,因此在Node中以下内容当然不起作用:
在这个例子中,Attendances包含Hackathon键,我想返回一个Hackathons列表。由于代码是异步的,因此在Node中以下内容当然不起作用:
models.Attendance.findAll({
where: {
UserId: req.user.id
}
}).then(function (data) {
var hacks = [];
for (var d in data) {
models.Hackathon.findOne({
where: {
id: data[d].id
}
}).then(function (data1) {
hacks.append(data1);
});
}
res.render('dashboard/index.ejs', {title: 'My Hackathons', user: req.user, hacks: hacks});
});
有没有一种同步的方式来执行这个查询呢?也就是说,只有当“hacks”列表中填满了所有对象时,我才返回视图?
谢谢!