Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Problemas aula 2.8 - produtosBanco.lista is not a function

Galera, boa tarde.

Estava estudando aqui e fiquei travado na aula 2.8 de nodejs.

Nesta mesma, o instrutor coloca o select to mysql em um arquivo externo e faz algumas alterações no arquivo que constava o select. Porém, quando fiz isso, apareceu o erro de que produtosBanco.lista não era uma função. Eis o código das duas páginas:

routes/produtos.js module.exports = function(app){ app.get('/produtos', function(req, res){ var connection = app.infra.connectionFactory(); var produtosBanco = app.infra.produtosBanco;

produtosBanco.lista(connection, function(erros, resultados){ res.render('produtos/lista',{lista:resultados}); }); connection.end(); }); }

infra/produtosBanco.js

module.exports = function(){ this.lista = function(connection,callback){ connection.query('select * from livros', callback); } return this; }

Me ajudem, por favor

1 resposta
solução!

Olá Igor,

No arquivo routes/produtos.js tente alterar a linha "var produtosBanco = app.infra.produtosBanco;" para "var produtosBanco = new app.infra.produtosBanco();" (Sem as aspas). Como o .lista é um método do objeto produtosBanco, é preciso instanciar um novo objeto produtosBanco para ter acesso ao método.

Espero que funcione.

Abraço.

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