Der beste Weg, Daten aus vielen Tabellen in node.js holen

stimmen
1

Wenn ich einen Blick in meinem (MVC-Projekt) habe enthält Daten aus vielen Tabellen in der Datenbank, was ist der beste Weg, um sie zu holen, ohne in den verschachtelten Baum des Schicksals zu bekommen

Model1.findAll().then(model1Data => {
  Model2.findAll().then(model2Data => {
    Model3.findAll().then(model3Data => {
      Modeln.findAll().then(modelnData => {
        res.render('view', {
          model1Data: model1Data,
          model2Data: model2Data,
          model3Data: model3Data,
          modelnData: modelnData
        });
      })
    })
  })
})

Hinweis : Die obige Abfrage hat keine where - Klauseln, Verknüpfungen oder andere Bedingungen

Veröffentlicht am 19/12/2018 um 14:18
quelle vom benutzer
In anderen Sprachen...                            


1 antworten

stimmen
2

Hier können Sie zwei Möglichkeiten , entweder Promise.all()oder async/await:

Promise.all ():

const promises = [
    Model1.findAll(),
    Model2.findAll(),
    Model3.findAll(),
    Modeln.findAll()
]

Promise.all(promises).then((data) => {
    res.render('view', data );
});

Async / erwarten:

let model1Data = await Model1.findAll();
let model2Data = await Model2.findAll();
let model3Data = await Model3.findAll();
let modelnData = await Modeln.findAll();
res.render('view', {
    model1Data: model1Data,
    model2Data: model2Data,
    model3Data: model3Data,
    modelnData: modelnData
});

HINWEIS :

Ich würde vorschlagen, Promise.all () zu verwenden, wenn die Abfragen nicht voneinander abhängig sind, wie es die Ausführung beginnen wird und nicht für die ersten warten zu vervollständigen, wie es funktioniert in async / await.

Weitere Deatil: Lesen

Beantwortet am 19/12/2018 um 14:39
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more