3
respostas

Cannot read property 'length' of undefined

Estou com o seguinte erro após essa aula e não consegui resolver:

TypeError: C:/Users/lestivalet/Desktop/casadocodigo/app/views/produtos/lista.ejs:10 8|

preco 9|

10| <%for(var i=0;i 11|

12| <%=lista[i].id%> 13| <%=lista[i].titulo%>

Cannot read property 'length' of undefined at eval (eval at (C:\Users\lestivalet\Desktop\casadocodigo\node_modules\ejs\lib\ejs.js:485:12), :13:26) at returnedFn (C:\Users\lestivalet\Desktop\casadocodigo\node_modules\ejs\lib\ejs.js:514:17) at View.exports.renderFile [as engine] (C:\Users\lestivalet\Desktop\casadocodigo\node_modules\ejs\lib\ejs.js:358:31) at View.render (C:\Users\lestivalet\Desktop\casadocodigo\node_modules\express\lib\view.js:126:8) at tryRender (C:\Users\lestivalet\Desktop\casadocodigo\node_modules\express\lib\application.js:639:10) at EventEmitter.render (C:\Users\lestivalet\Desktop\casadocodigo\node_modules\express\lib\application.js:591:3) at ServerResponse.render (C:\Users\lestivalet\Desktop\casadocodigo\node_modules\express\lib\response.js:960:7) at Query._callback (C:\Users\lestivalet\Desktop\casadocodigo\app\routes\produtos.js:7:8) at Query.Sequence.end (C:\Users\lestivalet\Desktop\casadocodigo\node_modules\mysql\lib\protocol\sequences\Sequence.js:85:24) at Query.ErrorPacket (C:\Users\lestivalet\Desktop\casadocodigo\node_modules\mysql\lib\protocol\sequences\Query.js:94:8)

3 respostas

Falha minha... ao criar o produtosBanco.js eu alterei o select para "select from produtos" ao inves de "select from livros"... mas de qualquer forma não teria que vir uma mensagem de erro do mysql dizendo que a tabela não existe??

Assim fica dificil de programar sem saber o erro exato. O undefined deu porque o JSON não estava definido mas a origem do erro foi a tabela não existir

Poderiam me ajudar a entender por que não veio a mensagem de tabela inexistente?? obrigado.

Na verdade acho que não foi falha minha pois eu vou fazendo o codigo assistindo o vídeo junto com o instrutor e la pelas tantas mudou a tabela de livros para produtos

Oi Luiz, tudo bem?

Naquele select ainda está faltando o * após o select. O erro sempre é a primeira variável do callback que vc utiliza para tratar o retorno da consulta. Você pode fazer um if para verifciar.