簡體   English   中英

從node.js中的許多表中獲取數據的最佳方法

[英]Best way to fetch data from many tables in node.js

如果在我的(mvc項目)中有一個視圖包含數據庫中許多表中的數據,那么在不進入嵌套的厄運樹的情況下獲取它們的最佳方法是什么?

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

注意 :上面的查詢沒有where子句,聯接或任何其他條件

在這里,您可以使用兩種方式Promise.all()async/await

Promise.all():

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

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

異步/等待:

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

注意 :

如果查詢不相互依賴,我建議使用Promise.all(),因為它將開始執行,並且不要像異步/等待中那樣等待第一個查詢完成。

有關更多詳情:請閱讀

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM