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

Error no Lista.ejs

Olá, após fazer a parte do carregamento automatico de modulos quando tento rodar o programa o seguinte problema surge:

TypeError: /Users/josecarlosferreira/Desktop/casadocodigo/app/views/produtos/lista.ejs:19
    17|             </thead>
    18|             <tbody>
 >> 19|                 <% for(var i=0; i < lista.length; i++) {%>
    20|                 <tr>
    21|                     <td><%=lista[i].id%></td>
    22|                     <td><%=lista[i].titulo%></td>

Cannot read property 'length' of undefined
    at eval (eval at compile (/Users/josecarlosferreira/Desktop/casadocodigo/node_modules/ejs/lib/ejs.js:524:12), <anonymous>:11:30)
    at returnedFn (/Users/josecarlosferreira/Desktop/casadocodigo/node_modules/ejs/lib/ejs.js:555:17)
    at tryHandleCache (/Users/josecarlosferreira/Desktop/casadocodigo/node_modules/ejs/lib/ejs.js:203:34)
    at View.exports.renderFile [as engine] (/Users/josecarlosferreira/Desktop/casadocodigo/node_modules/ejs/lib/ejs.js:412:10)
    at View.render (/Users/josecarlosferreira/Desktop/casadocodigo/node_modules/express/lib/view.js:128:8)
    at tryRender (/Users/josecarlosferreira/Desktop/casadocodigo/node_modules/express/lib/application.js:640:10)
    at EventEmitter.render (/Users/josecarlosferreira/Desktop/casadocodigo/node_modules/express/lib/application.js:592:3)
    at ServerResponse.render (/Users/josecarlosferreira/Desktop/casadocodigo/node_modules/express/lib/response.js:971:7)
    at Query._callback (/Users/josecarlosferreira/Desktop/casadocodigo/app/routes/produtos.js:7:17)
    at Query.Sequence.end (/Users/josecarlosferreira/Desktop/casadocodigo/node_modules/mysql/lib/protocol/sequences/Sequence.js:86:24)
7 respostas

Fala José tudo bom?

Poderia me passar um link do GitHub com o seu projeto, para que eu possa baixar e simular o erro? /o

Valeu!

Sim, aqui está: https://github.com/JKFher/Casa-do-C-digo---COURSE-NODE

Parece que o problema é na busca dos dados. Ele não deve ter retornado nada e por isso a variável lista ficou undefined. Verifica os dados de conexão com o banco estão corretos (host, user, password, database). Lá em produtos.js você pode por um console.log(err) pra ver qual o problema

Boa Yuri!

A linha é essa mesmo, dê uma checada na parte de conexão com banco de dados, ou qualquer coisa da uma revisada na atividade 8 da aula 2 e faz um check dos passos para configurar o MySQL

Espero ter ajudado :)

Na verdade aqui eu fiz essa mudança e nada mudou, continua dizendo que não posso utilizar o length na lista

Eu peguei seu codigo do github e está rodando na minha maquina. Ele não exibiu nenhum outro log em cima desse erro do length? Cola o código com a mudança que você tentou aqui pra eu dar uma olhada.

solução!

Fala José tudo bom?

Bom um outro ponto que podemos tentar é irmos mais a fundo no erro que está aparecendo para você.

        connection.query('select * from produtos', function(err, results){
            console.log('Resultados', results); // retorna undefined
            console.log('Erro', err); // ?
            res.render('produtos/lista', {lista: results});
        });

Poderia por favor, me falar qual o resultado que aparece no console.log() da variável err?