La meilleure façon de récupérer les données de plusieurs tables dans Node.js

voix
1

Si j'ai vue dans mon (projet mvc) contient ce qui est la meilleure façon des données de plusieurs tables dans la base de données, de les chercher sans entrer dans l'arbre imbriqué de malheur

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

Remarque : la requête ci - dessus n'a pas clauses where, joint, ou toute autre condition

Créé 19/12/2018 à 14:18
source utilisateur
Dans d'autres langues...                            


1 réponses

voix
2

Ici , vous pouvez utiliser 2 façons soit Promise.all()ou async/await:

Promise.all ():

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

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

Async / attendent:

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

REMARQUE :

Je suggère d'utiliser Promise.all () si les requêtes ne sont pas dépendants les uns des autres, comme il va commencer l'exécution et ne pas attendre le premier à compléter comme dans async / vous attendent.

Pour de plus amples Deatil: DO LIRE

Créé 19/12/2018 à 14:39
source utilisateur

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