Ich baue eine Website mit Node.js und Sequelize (mit einem Postgres-Backend). Ich habe eine Abfrage, die viele Objekte mit einem Fremdschlüssel zurückgibt, und ich möchte eine Liste der Objekte, die der Fremdschlüssel verweist, an die Ansicht übergeben.Sequelize-Abfragen synchron ausführen
Im Beispiel enthält Attendances Hackathon-Schlüssel, und ich möchte eine Liste von Hackathons zurückgeben. Da der Code async ist, wird die folgende Sache natürlich nicht in Knoten arbeiten:
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});
});
Gibt es eine Möglichkeit, dass die Abfrage in einer synchronen Art und Weise zu tun, was bedeutet, dass ich bis ich das nicht über die Ansicht zurückkehren "Hacks" Liste mit allen Objekten gefüllt?
Danke!
Haben Sie Asynchron-Modul mit Wasserfall versuchen? das kann dir helfen – abdulbarik
Einen Datensatz in einer Schleife zu finden, ist ein schreckliches Design. Es sollte nur eine Abfrage sein. –