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

Dúvida no Ex. 11 da Aula 2 - Coesão e Acoplamento, organizando o código

Meus códigos nos arquivos estão exatamente iguais aos escritos nos vídeos, meu arquivo produtos.js está assim:

module.exports = function(app) { app.get("/produtos",function(req, res) {

var connection = app.infra.connectionFactory(); var produtosBanco = new app.infra.produtosBanco(connection);

produtosBanco.lista(function(err, results){ res.render('produtos/lista', {lista: results}); });

connection.end();

}); }

meu arquivo produtosBanco.js está assim:

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

e estou obtendo o seguinte erro:

TypeError: /Users/arthurdeaquino/Dropbox/casa_do_codigo_alura/app/views/produtos/lista.ejs:16 14| 15|

16| <% for(var i = 0; i < lista.length; i++) { %> 17| 18|

19| <%= lista[i].id %>

Cannot read property 'length' of undefined at eval (eval at (/Users/arthurdeaquino/Dropbox/casa_do_codigo_alura/node_modules/ejs/lib/ejs.js:460:12), :11:32) at returnedFn (/Users/arthurdeaquino/Dropbox/casa_do_codigo_alura/node_modules/ejs/lib/ejs.js:489:17) at View.exports.renderFile [as engine] (/Users/arthurdeaquino/Dropbox/casa_do_codigo_alura/node_modules/ejs/lib/ejs.js:350:31) at View.render (/Users/arthurdeaquino/Dropbox/casa_do_codigo_alura/node_modules/express/lib/view.js:126:8) at tryRender (/Users/arthurdeaquino/Dropbox/casa_do_codigo_alura/node_modules/express/lib/application.js:639:10) at EventEmitter.render (/Users/arthurdeaquino/Dropbox/casa_do_codigo_alura/node_modules/express/lib/application.js:591:3) at ServerResponse.render (/Users/arthurdeaquino/Dropbox/casa_do_codigo_alura/node_modules/express/lib/response.js:961:7) at Query._callback (/Users/arthurdeaquino/Dropbox/casa_do_codigo_alura/app/routes/produtos.js:8:17) at Query.Sequence.end (/Users/arthurdeaquino/Dropbox/casa_do_codigo_alura/node_modules/mysql/lib/protocol/sequences/Sequence.js:96:24) at /Users/arthurdeaquino/Dropbox/casa_do_codigo_alura/node_modules/mysql/lib/protocol/Protocol.js:393:18

eu não estou entendendo porque meu código está exatamente igual ao dos vídeos. Revisei inúmeras vezes não tem uma diferença.

2 respostas
solução!

Já foi resolvido.

Qual foi o procedimento para resolver? Por que estou com o mesmo problema!