Estou mechendo com uma função aqui e não estou conseguindo elaborar um calculo para filtrar quais elementos serão os alvos.
Basicamente serão listas, ao licar em um item de uma lista todas as demais listas mostram o mesmo resultado.
Tudo bem até então... O problema está em:
Ao clicar no segundo item da lista os dois próximos itens são exibidos, ao clicar por exempo no item 3 o item 2 e 4 também são exibidos e ao clicar no penúltimo item os dois itens anteriores devem ser exibidos.
Sempre assim 3 itens serão exibidos ao mesmo tempo em cada lista, e sempre ignorando o primeiro e o último item de cada lista e dando destaque ao item clicado.
Como o primeiro e o ultimo não vão ser ocultados digamos que o segundo é o primeiro e penúltimo é o ultimo, pois eles serão usados para navegar ao primeiro e o último.
Quem quiser dar um força aqui agradeço porque não estou vendo um solução para o caso, pode ser até algo bobo que não está me vindo a cabeça.
Segue o código:
Na verdade a coisa é bem mais complexa que isso, mas resolvendo esse exemplo posso chegar a solução da função real, isso apresentado aqui só foi para simplificar para o fórum.
Pessoal, estou precisando retornar o valor total de receita e valor total de despesas por mês nesse estilo:
Despesa Receita
Janeiro 50.00 200.00
Fevereiro 0 500.00
Março 100.00 500.00
Cheguei a essa consulta abaixo mas esta retornando o mesmo valor para todos os mês
SELECT MONTHNAME(`data_vencimento`) as mes, (SELECT SUM(`valor`) as valor_total FROM lancamentos WHERE tipo = 'despesa' and YEAR(`data_vencimento`) = 2022 AND `empresa` = 1) as despesas, (SELECT SUM(`valor`) as valor_total FROM lancamentos WHERE tipo = 'receita' and YEAR(`data_vencimento`) = 2022 AND `empresa` = 1) as receitas From lancamentos GROUP BY MONTH(`data_vencimento`) ORDER BY MONTH (`data_vencimento`);
O Retorno esta assim
Despesa Receita
Janeiro 50.00 200.00
Fevereiro 50.00 200.00
Março 50.00 200.00
Alguém consegue me ajudar com essa consulta?
Obrigado
Meu programa não consegue identificar o dotenv na middleware
Eu estava fazendo um CRUD simples, implementei o dotenv no meu programa, está funcionando quando faço a conexão com o banco de dados e a inserção e uma função normal, mais quando vou fazer isso dentro de uma middleware ele não chama meu dotenv, só funciona quando tiro o process.env e ponho as informações direto na função de conexão.
require( 'dotenv' ).config( { path: '../../.env' } )
const mysql = require( 'mysql2' )
// DESSA FORMA NÃO FUNCIONA
const connection_pool = mysql.createPool( {
host: process.env.DB_HOST,
user: process.env.DB_USER,
database: process.env.DB_DATABASE,
password: process.env.DB_PASS
} )
// DESSA FORMA FUNCIONA
// const connection_pool = mysql.createPool( {
// host: 'localhost',
// user: 'carlos',
// database: 'simple_crud',
// password: 'pass1241'
// } )
module.exports = connection_pool.promise()
INSERÇÃO NO BANCO DE DADOS
const db_conn = require( '../db/connection' )
const createNewClient = ( name ) => {
return db_conn.execute( `INSERT INTO client ( name ) values (?)`, [ name ] )
}
module.exports = { createNewClient }
FAZENDO A INSERÇÃO NO MIDDLEWARE
const data = require( '../data/client' )
const createClient = ( req, res, next ) => {
const client = req.body.name
data.createNewClient( client )
.then( () => {
res.status( 200 ).json( { 'status': 'sucess', 'client': client } )
} )
.catch( ( err ) => {
res.status( 404 ).json( { status: 'error', error: err } )
} )
.finally( () => {
next()
} )
}
module.exports = { createClient }
{
"status": "error",
"error": {
"message": "Access denied for user ''@'localhost' (using password: YES)",
"code": "ER_ACCESS_DENIED_ERROR",
"errno": 1045,
"sqlState": "28000",
"sqlMessage": "Access denied for user ''@'localhost' (using password: YES)"
}
}
Esse é o erro que obtenho quando uso o dotenv, lenbrando que as informações de login estão todas certas, e que em outra função que não seja um middleware funciona.