La mejor manera de obtener los datos de muchas tablas en Node.js

votos
1

Si tengo una visión en mi (proyecto MVC) contiene datos de muchas tablas en la base de datos, ¿cuál es la mejor manera de buscarlos sin entrar en el árbol anidado de la fatalidad

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

Nota : la consulta anterior no tiene cláusulas donde, se une a, o cualquier otra condición

Publicado el 19/12/2018 a las 14:18
fuente por usuario
En otros idiomas...                            


1 respuestas

votos
2

Aquí se puede utilizar 2 maneras, ya sea Promise.all()o async/await:

Promise.all ():

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

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

Asíncrono / esperan:

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

NOTA :

Yo sugeriría utilizar Promise.all () si las consultas no son dependientes entre sí, ya que comenzará la ejecución y no esperar a que la primera de ellas para completar como lo hace en asíncrono / esperan.

Para más Deatil: ¿Lee

Respondida el 19/12/2018 a las 14:39
fuente por usuario

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