Najlepszym sposobem, aby pobrać dane z wielu tabel w node.js

głosy
1

Jeśli mam widok w moim projekcie (MVC) zawiera dane z wielu tabel w bazie danych, co jest najlepszym sposobem, aby sprowadzić je bez dostania się do zagnieżdżonego drzewa zagłady

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
        });
      })
    })
  })
})

Uwaga : powyższe zapytania nie ma klauzul, gdzie przyłącza się lub jakiekolwiek inne warunki

Utwórz 19/12/2018 o 14:18
źródło użytkownik
W innych językach...                            


1 odpowiedzi

głosy
2

Tutaj można korzystać na 2 sposoby albo Promise.all()czy async/await:

Promise.all ():

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

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

Asynchroniczny / czekają:

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
});

UWAGA :

Proponuję użyć Promise.all () jeśli kwerendy nie są od siebie zależne, a rozpocznie wykonanie, a nie czekać na pierwszy aby zakończyć jak ma to miejsce w asynchroniczny / Oczekujcie.

Aby uzyskać więcej Deatil: czytają

Odpowiedział 19/12/2018 o 14:39
źródło użytkownik

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