Na aula anterior quando era para ser mostrado na tela a lista que criei no banco de dados, nada aparecia. Contudo, ao continuar para saber se poderia ser corrigido, agora dá erro no 'length' da lista e estou travada. Conferi o banco de dados:
mysql> describe livros;
+----+--------------------------+-------------------------------------+-------+
| 1 | Comecando com nodejs | livro introdutório sobre nodejs | 39.90 |
| 2 | Comecando com javascript | livro introdutório sobre javascript | 39.90 |
| 3 | Comecando com express | livro introdutório sobre express | 39.90 |
+----+--------------------------+-------------------------------------+-------+
3 rows in set (0.00 sec)
mysql>
Na lista.ejs está assim:
<html>
<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>
<%}%>
<tr>
</tr>
</table>
</body>
</html>
produtos.js está assim:
module.exports = function(app) {
app.get("/produtos",function(req, res) {
var mysql = require('mysql');
var connection = mysql.createConnection({
host: "localhost",
user: "root",
password : "root",
database: "casadocodigo_nodejs",
});
connection.query('select * from livros', function(err,results){
res.render('produtos/lista',{lista:results});
});
connection.end();
});
}
E o erro dado:
TypeError: C:\Users\Ádri Souza\casadocodigo\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>
Cannot read property 'length' of undefined
at eval (eval at compile (C:\Users\Ádri Souza\casadocodigo\node_modules\ejs\lib\ejs.js:618:12), <anonymous>:11:27)
at returnedFn (C:\Users\Ádri Souza\casadocodigo\node_modules\ejs\lib\ejs.js:653:17)
at tryHandleCache (C:\Users\Ádri Souza\casadocodigo\node_modules\ejs\lib\ejs.js:251:36)
at View.exports.renderFile [as engine] (C:\Users\Ádri Souza\casadocodigo\node_modules\ejs\lib\ejs.js:482:10)
at View.render (C:\Users\Ádri Souza\casadocodigo\node_modules\express\lib\view.js:135:8)
at tryRender (C:\Users\Ádri Souza\casadocodigo\node_modules\express\lib\application.js:640:10)
at Function.render (C:\Users\Ádri Souza\casadocodigo\node_modules\express\lib\application.js:592:3)
at ServerResponse.render (C:\Users\Ádri Souza\casadocodigo\node_modules\express\lib\response.js:1008:7)
at Query.<anonymous> (C:\Users\Ádri Souza\casadocodigo\app\routes\produtos.js:12:17)
at Query.<anonymous> (C:\Users\Ádri Souza\casadocodigo\node_modules\mysql\lib\Connection.js:502:10)
Definitivamente, não sei mais aonde mexer.
Obrigada.