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

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

De acordo com a aula, fiz a consulta conforme o código abaixo:

conn.query("SELECT * FROM casadocodigo_nodejs.livros", function (err, results) {
    res.render('produtos/lista', {lista: results});
});

Quando chamo a url no navegador, recebo a mensagem:

ReferenceError: C:\git\alura-nodejs\app\views\produtos\lista.ejs:10
   8|                 <td>preco</td> 
   9|             </tr> 
>> 10|             <% for(var i=0; i<lista.length; i++) {%> 
   11|                 <tr> 
   12|                     <td><%= lista[i].id %></td> 
   13|                     <td><%= lista[i].titulo %></td> 

lista is not defined
   at eval (eval at <anonymous> (C:\git\alura-nodejs\node_modules\ejs\lib\ejs.js:485:12), <anonymous>:11:23)
   at returnedFn (C:\git\alura-nodejs\node_modules\ejs\lib\ejs.js:514:17)
   at View.exports.renderFile [as engine] (C:\git\alura-nodejs\node_modules\ejs\lib\ejs.js:358:31)
   at View.render (C:\git\alura-nodejs\node_modules\express\lib\view.js:126:8)
   at tryRender (C:\git\alura-nodejs\node_modules\express\lib\application.js:639:10)
   at EventEmitter.render (C:\git\alura-nodejs\node_modules\express\lib\application.js:591:3)
   at ServerResponse.render (C:\git\alura-nodejs\node_modules\express\lib\response.js:961:7)
   at C:\git\alura-nodejs\app\routes\produtos.js:17:9
   at Layer.handle [as handle_request] (C:\git\alura-nodejs\node_modules\express\lib\router\layer.js:95:5)
   at next (C:\git\alura-nodejs\node_modules\express\lib\router\route.js:131:13)

A variável lista não está sendo definida. Depurei o código e a variável results está com o valor correto, mas seu valor não chega na lista. Não achei o motivo. Alguma ajuda?

4 respostas

Oi Leandro,

Olhando só pelo exemplo não fui capaz de entender o que está acontecendo. Como você disse que o results está preenchido, precisamos debugar ainda mais. Minha sugestão é que você coloque um link do github, para o seu projeto. Dessa forma, vou poder te ajudar mais.

Oi Leandro! Coloca seu código inteiro para que eu possa lhe ajudar, a principio parece certo.

Ou um pastebin.

solução!

Estive fora esses dias e não pude responder antes, mas resolvi o problema. Não descobri o que estava errado, mas refiz um trecho de código e funcionou. Devo ter digitado algo errado. De qualquer forma, o github: https://github.com/leandromarte/alura-nodejs. Obrigado!