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

Cannot read property 'length' of undefined

Estou achando esquisito que deu este erro, e ele diz que está aqui: app\views\produtos\lista.ejs:10

Minha lista chama esse length, pra ver quantas linhas vai adicionar. Tentei encontrar o problema no meu código, até que desisti e baixei o do curso (até o ultimo capítulo do Aula 2), mas mesmo o do curso está dando este mesmo erro.

A minha table no lista.ejs é a seguinte:

<table border="1px">
    <tr>
        <td>id</td>
        <td>nome</td>
        <td>descricao</td>
        <td>preco</td>
    </tr>
        <tr>
        <% for(var i=0; i<lista.length; i++) {%>
            <tr>
                <td><%= lista[i].id %></td>
                <td><%= lista[i].titulo %></td>
                <td><%= lista[i].preco %></td>
                <td><%= lista[i].descricao%></td>
            </tr>
        <% } %>
    </tr>
</table>
2 respostas
solução!

Ah, foi uma grande falha minha, na verdade. Estava trazendo o resultado como 'undefined', porque não encontrou nada no banco, e por isso ele dava o erro no lista.length. No começo do curso, peguei o script de uma das aulas, onde criava e inseria dados na tabela livros, mas acabou mudando durante o curso e nem notei. Minha query estava buscando itens na tabela produtos, que não existe na minha base.

Acredito que vale a correção nos exercícios, pois passei alguns minutos até descobrir a troca do nome da tabela.