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

Criação do connection e produtoDao

Boa tarde, eu sou novo no mundo node, e queria entender como funciona na hora de criar os objetos no curso. Por exemplo quando criamos o connection dentro das rotas de produto não precisamos dar new, mas ja no produtoDao precisamos, qual a diferença ?

3 respostas
solução!

Opa johnnys, tudo bem? Na verdade a gente também dá new na connection, mas esse não está tão explicito assim, a gente usa algo como mysql.createConnection, não é mesmo? E a partir dai, dá um return então temos:

return mysql.createConnection();

Esse createConnection é o nosso new, mas está de forma indireta.

No produtoDao, você não codificou dessa forma. Lembrando que como o MySQL é um pacote NPM, é na documentação do pacote que a gente vê como usa, lá não tem descrito que precisamos usar o new, em outros pacotes podem ter essa descrição de necessidade. (Express é um exemplo).

No produtoDao, por ser uma classe nossa e que não escrevemos outras maneiras de criar os objetos, então a gente tem que escrever o new manualmente.

Lembrando que, para criação de objetos, a gente usa o new sim, só que no caso de pacotes como o MySQL, o new talvez não esteja no nosso controle, mas sim no controle do próprio pacote em si, em algum lugar no código dele vai ter o new do objeto da conexão.

Entendeu mais ou menos a ideia?

Verdade amigo, vi que quando damos o require no mysql, chamamos uma função que cria uma nova instancia da conexão, vlw mesmo pelo ajuda.

johnnys, só um pedido. Quando sua dúvida for solucionada por algum post aqui, vai lá e marca como solução tá bem? Assim a gente de fato sabe que a resposta resolveu o problema.