Solucionado (ver solução)
Solucionado
(ver solução)
7
respostas

express load - Estabelecendo Conexões (aula 02, atividade 07)

Olá pessoal!

Assistindo, lendo e praticando a aula 02, atividade 07, apesar de toda a explicação do professor, ainda não consegui distinguir a diferença entre os dois códigos abaixo. Na prática, ambos não foram chamados assim que o servidor foi carregado? Logo, não dá na mesma a função ser anônima ou declarada? Se não, por quê? Seguem os códigos :

Função declarada

function createDBConnection(){
    return mysql.createConnection({
        host : 'localhost',
        user : 'root',
        password : '',
        database : 'casadocodigo'
    });
}

module.exports = function(){
    return createDBConnection;
}

Função anônima

var connectMYSQL = function(){
    return mysql.createConnection({
        host:'localhost',
        user:'root',
        password:'',
        database:'casadocodigo_nodejs'
    });
};

module.exports = function(){
    return connectMYSQL;
}
7 respostas

Oi Marcelo, a grosso modo os dois código são equivalentes. No primeiro caso você cria uma função nomeada e no segundo uma variável que possui uma função. Porém nenhuma das duas é executada logo ao exportar, veja que você está retornando a função ou a variável que a possui e não a execução da mesma, que precisaria dos parenteses para significar a execução. =)

Pegou a ideia?

solução!

Olá Wanderson!

Primeiramente, obrigado pela resposta!

Pois bem, o que eu entendi foi exatamente o que você me explicou, mas vi agora que há uma confusão no material do curso.

Estava estudando lendo as explicações das atividades, e não assistindo os vídeos. Notei agora que o código está diferente no vídeo e na explicação.

Por este motivo, eu não estava encontrando a diferença quando o professor dizia "o express_load já invoca a função automaticamente".

Portanto, o código do vídeo era:

module.exports = function() {
    return mysql.createConnection({
        host: 'localhost',
        user: 'root',
        password: '',
        database: 'casadocodigo'
    });
}

Aí sim há diferença, pois realmente a função será invocada automaticamente.

Opa Marcelo, obrigado pelo feedback, vou pedir pra equipe de explicações revisar esse texto. Desculpe-nos por qualquer problema que tenha passado.

Obrigado pelo retorno. Vou marcar seu post como solucionado tudo bem?

Opa, eu que agradeço!

Não foi problema algum, afinal de uma forma ou de outra, eu acabei estudando mais o recurso e isso vai me ajudar a fixar melhor!

Ok, pode marcar sim!

Abraço!

Certo, mas qualquer problema que encontrar nas explicações, nos mande uma solicitação de correção, uma sugestão. Acima do vídeo tem um menu (nos três pontinhos) onde você sugerir melhorias para a explicação.

A sugestão deve ser uma edição do texto atual, não apague o texto completamente, apenas edite a parte problemática. É mais rápido ter as correções feitas dessa forma. Caso seja um problema mais sério, abre tópico aqui no fórum que a gente tá sempre de olho.

Olá Wanderson,

Eu conhecia o recurso de sugestão, mas neste caso, como eu não havia identificado que era um problema, acabei abrindo a dúvida no fórum, pois pensei que se tratava mesmo de uma dúvida.

Mas já que estamos falando nisso, eu aproveito para sugerir que as demais atividades desta aula 02 sejam checadas pela equipe de explicações, pois existem outras divergências no decorrer do curso, como por exemplo: nomes de variáveis e parâmetros que são alterados de uma atividade para outra (até mesmo nos vídeos).

E claro, me disponho agora a enviar as sugestões que eu tiver, utilizando o recurso próprio para isto.

Mais uma vez, obrigado!

Entendi, eu só quis adicionar uma informação. Vou repassar suas sugestões de revisão para a equipe. Mais uma vez, muitíssimo obrigado pelo feedback. Bons estudos e caso tenha dúvidas, já sabe que pode contar conosco!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software