1
resposta

Dúvida sobre o .query()

Boa tarde, Nas aulas a instrutora utiliza o .query() que recebe o que vai adicionar adicionar ao banco de dados e uma função para confirmação, se não entedi errado. Ex:

conexao.query(sql, atendimentoDatado, (erro, resultados) =>{
            if(erro){
                console.log(erro); 
            }else{
                console.log(resultados);
            }

Nessa porção, foi recebido em forma de variável sql os parâmetros para criação de tabela no MySQL, o objeto que trata das datas, e a função com os parâmetros erro e resultados...

Minha dúvida é: Como a própria função utiliza os parâmetros recebidos para mostrar ou o erro ou o resultado? É devido a ordem de cada um? Pois não tem nada especificando, pelo menos aparentemente para mim, que o erro vai mostrar o erro e o resultado vai mostrar o resultado

1 resposta

Fala Arthur, tudo bem?

Sim! Seria a ordem que recebemos os parâmetros, pois internamente, quando a query for executada no banco de dados, o método executará essa função de callback que passamos como terceiro parâmetro para o método, então será executada passando como primeiro parâmetro os erros (se houver) e como segundo os resultados da query, seria algo mais ou menos assim:

query(sql, arguments, callback) {
    //Toda a lógica por trás da query
    ... 

    const erro = [{ erro: 'Opa! Temos um erro aqui :(' }] || null;
    const resultados = [{ rowsAffected: 0 }]

    //Executou a query

        callback(erro, resultados) //Depois de executar a query no banco de dados a função que passamos é executada e é passado pra gente os erros e resultados.

}

Espero ter ajudado, bons estudos :D