【发布时间】:2018-12-19 22:44:50
【问题描述】:
如果我的(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子句、连接或任何其他条件
【问题讨论】:
-
如果你有 Sequelize Associations beetwin 你的模型,你可以使用 Include 来提取所有数据link 如果没有,你可以考虑有一个单独的文件夹包含你所有的模型逻辑并调用每个需要的函数,此外,如果您需要在其他视图中显示一些信息(不是所有数据),这应该会有所帮助
-
async / await 语法也应该适用于这种情况
-
我已经有一个单独的模型逻辑文件夹,但是当我调用每个模型时都会发生同样的问题,因为返回的值将是承诺的,我必须使用嵌套才能完全使用它们
-
@vivek-doshi 答案应该可以!
标签: mysql node.js async-await sequelize.js es6-promise