gpt4 book ai didi

mysql - 从 node.js 中的多个表中获取数据的最佳方法

转载 作者:行者123 更新时间:2023-11-29 05:51:21 25 4
gpt4 key购买 nike

如果我的(mvc 项目)中有一个 View 包含来自数据库中许多表的数据,那么在不进入嵌套厄运树的情况下获取它们的最佳方法是什么

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

NOTE :

I would suggest to use Promise.all() if the queries are not dependent on each other , as it will start execution and don't wait for the first one to complete as it does in async/await.

For More Deatil : DO READ

关于mysql - 从 node.js 中的多个表中获取数据的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53853148/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com