我试图从多个表中获取数据,并使用后遗症方法findAll将其传递到视图,但要将数据传递到视图,需要将Res.Render放在then方法中。我有5个没有关系的表,所以我需要把方法一个放在另一个里面,我不这么认为,有更好的方法吗?
我需要这样传递数据:
res.render(“view”,{user:users,device:devices,root:roots,place:places,why:whys})
我尝试使用异步和等待方法,但我仍然没有得到数据。
router.get('/', (req, res) => {
const Getuser = async () => {
const res = await Users.findAll()
const data = await res.json
return data
}
const result = Getuser()
console.log('dados:')
console.log(result)
res.render('home/index', {
User: req.user,
Result: result
})
});
我希望结果包含我需要传递给视图所有数据,但实际结果是:
数据:Promise{}
我找到了更好的方法。
router.get('/', async (req, res) => {
try {
// pegar dados de tabela:
// - User
const user = await User.findAll()
return res.render('home/index', {
User: req.user,
// Contact: contatos,
// Redes: social,
// Planos: planos
})
} catch(err) {
throw new Error('Erro ao retornar usuarios')
}
});
这样我就可以把很多查询放在这里,查询属于多个表