2
respostas

Cannot read property 'length' of undefined

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

Cannot read property 'length' of undefined

Está aparecendo esse erro no navegador mas eu já declarei a variável lista.

connection.query('select * from livros', function(err, results){
    res.render('produtos/lista', {lista: results});
})
2 respostas

Boa tarde Nicole,

O length é uma propriedade que os arrays possuem, tem certeza que no momento que você está tentando utilizar a variável lista ela é um array? Tente dar um console.log na lista antes do for e veja o resultado no console do navegador.

console.log(lista);

Abraços

Oi Nicole,

por mais que a propriedade lista esteja criada, ela deve estar com um valor undefined. Pode ser que o banco não esteja retornando a lista. Isso pode acontecer se algum erro ocorrer lá dentro do banco de dados.

É possível verificar se há algum erro olhando pro valor do argumento err na função de callback da connection.query.

No caso de haver um erro, você pode enviar o erro na resposta pra que ele seja exibido no navegador:

connection.query('select * from livros', function(err, results){ 
    if(error){
        res.send(error)
    } else {
        res.render('produtos/lista', {lista: results});
    }
})