O código está igual ao da aula contudo ele apresenta erro para renderizar a página no navegador.
produtos.js
module.exports = function(app){
app.get('/produtos', function(req,res){
var mysql = require('mysql');
var connection = mysql.createConnection({
host : 'localhost',
user : 'pprimon',
password : '123456',
database : 'casadocodigo_nodejs'
});
connection.query('select * from livros', function(error, results){
res.render('produtos/lista',{lista:results});
});
connection.end();
});
}
lista.ejs
<html>
<head>
<title>
Lista de Produtos
</title>
</head>
<body>
<table>
<tr>
<td>id</td>
<td>titulo</td>
<td>descricao</td>
<td>preco</td>
</tr>
<%for(var i = 0; i < lista.length; i++){%>
<tr>
<td> <%=lista[i].id%> </td>
<td> <%=lista[i].titulo%> </td>
<td> <%=lista[i].descricao%> </td>
<td> <%=lista[i].preco%> </td>
</tr>
<%}%>
</table>
</body>
</html>
Erro apresentado no console
TypeError: /Users/elmac-000023/teste-node/app/views/produtos/lista.ejs:15
13| <td>preco</td>
14| </tr>
>> 15| <%for(var i = 0; i < lista.length; i++){%>
16| <tr>
17| <td> <%=lista[i].id%> </td>
18| <td> <%=lista[i].titulo%> </td>
Cannot read property 'length' of undefined
at eval (eval at compile (/Users/elmac-000023/teste-node/node_modules/ejs/lib/ejs.js:618:12), <anonymous>:11:32)
at returnedFn (/Users/elmac-000023/teste-node/node_modules/ejs/lib/ejs.js:653:17)
at tryHandleCache (/Users/elmac-000023/teste-node/node_modules/ejs/lib/ejs.js:251:36)
at View.exports.renderFile [as engine] (/Users/elmac-000023/teste-node/node_modules/ejs/lib/ejs.js:482:10)
at View.render (/Users/elmac-000023/teste-node/node_modules/express/lib/view.js:135:8)
at tryRender (/Users/elmac-000023/teste-node/node_modules/express/lib/application.js:640:10)
at Function.render (/Users/elmac-000023/teste-node/node_modules/express/lib/application.js:592:3)
at ServerResponse.render (/Users/elmac-000023/teste-node/node_modules/express/lib/response.js:1008:7)
at Query.<anonymous> (/Users/elmac-000023/teste-node/app/routes/produtos.js:11:17)
at Query.<anonymous> (/Users/elmac-000023/teste-node/node_modules/mysql/lib/Connection.js:502:10)