Boa tarde pessoal, estou tentando fazer duas consultas ao banco de dados na mesma chamada de rota mas não estou conseguindo se puderem dar uma luz...
app.get('/vagas', function(req, resp){
const vagaDao = new VagaDao(db);
vagaDao.lista().then(vagas => resp.marko(
require('../views/vagas/lista/lista.marko'),
{
vagas: vagas
})
).catch(erro => console.log(erro));
vagaDao.valoresPorPeriodo().then(periodos => resp.marko(
require('../views/vagas/lista/lista.marko'),
{
periodos: periodos
})
).catch(erro => console.log(erro));
});
*** A função "valoresPorPeriodo" tem o seguinte código
valoresPorPeriodo(){
return new Promise((resolve, reject) => {
this._db.all(
`
SELECT
strftime('%Y-%m', periodo_cobranca) as periodo,
printf("%.2f", SUM(value)) as total_valor,
printf("%.2f", SUM(lost_value)) as total_valor_perdido
FROM vagas GROUP BY strftime('%Y-%m', periodo_cobranca)
`
,
(erro,resultados) => {
if (erro) return reject('Não foi possível calcular valores por periodo');
return resolve(resultados);
}
)
});
Quando eu altero a ordem da chamada dos métodos no middleware consigo visualizar com sucesso o retorno do sql acima, porém, imagino que devido a eu atribuir ao "resp.marko..." na primeira chamada a segunda dá pau.
Se puderem me enviar algum conteúdo similar ou dar um norte, ficarei grato.