Boa noite.
Fiz todos os passos, mas não consegui exibir a página home da minha aplicação da casa do código. O erro que aparece na página é este:
TypeError: /home/cassia/casadocodigo/app/views/home/index.ejs:93
91| <li class="col-left">
92| <a href="linkDetalhe" class="block clearfix">
>> 93| <img width="170" height="240" src="//cdn.shopify.com/s/files/1/0155/7645/products/nodejs-featured_large.png?v=1411486494" alt="<%=livros[i].titulo%>" title="<%=livros[i].titulo%>"/>
94|
95| <h2 class="product-title"><%=livros[i].titulo%></h2>
96| <small class="buy-button">Lançamento!</small>
Cannot read property 'titulo' of undefined
at eval (eval at <anonymous> (/home/cassia/casadocodigo/node_modules/ejs/lib/ejs.js:524:12), <anonymous>:14:34)
at returnedFn (/home/cassia/casadocodigo/node_modules/ejs/lib/ejs.js:555:17)
at tryHandleCache (/home/cassia/casadocodigo/node_modules/ejs/lib/ejs.js:203:34)
at View.exports.renderFile [as engine] (/home/cassia/casadocodigo/node_modules/ejs/lib/ejs.js:412:10)
at View.render (/home/cassia/casadocodigo/node_modules/express/lib/view.js:128:8)
at tryRender (/home/cassia/casadocodigo/node_modules/express/lib/application.js:640:10)
at EventEmitter.render (/home/cassia/casadocodigo/node_modules/express/lib/application.js:592:3)
at ServerResponse.render (/home/cassia/casadocodigo/node_modules/express/lib/response.js:966:7)
at Query._callback (/home/cassia/casadocodigo/app/routes/home.js:6:17)
at Query.Sequence.end (/home/cassia/casadocodigo/node_modules/mysql/lib/protocol/sequences/Sequence.js:86:24)
at Query._handleFinalResultPacket (/home/cassia/casadocodigo/node_modules/mysql/lib/protocol/sequences/Query.js:137:8)
at Query.EofPacket (/home/cassia/casadocodigo/node_modules/mysql/lib/protocol/sequences/Query.js:121:8)
at Protocol._parsePacket (/home/cassia/casadocodigo/node_modules/mysql/lib/protocol/Protocol.js:280:23)
at Parser.write (/home/cassia/casadocodigo/node_modules/mysql/lib/protocol/Parser.js:75:12)
at Protocol.write (/home/cassia/casadocodigo/node_modules/mysql/lib/protocol/Protocol.js:39:16)
at Socket.<anonymous> (/home/cassia/casadocodigo/node_modules/mysql/lib/Connection.js:103:28)
Esses são os meus códigos:
home.js
module.exports = function(app) {
app.get('/',function(req,res){
var connection = app.infra.connectionFactory();
var produtosDAO = new app.infra.ProdutosDAO(connection);
produtosDAO.lista(function(erros,resultados){
res.render('home/index',{livros:resultados});
});
connection.end();
});
}
express.js
var express = require('express');
var load = require('express-load');
var bodyParser = require('body-parser');
var expressValidator = require('express-validator');
module.exports = function() {
var app = express();
app.use(express.static('./app/public'));
app.set('view engine', 'ejs');
app.set('views', './app/views');
app.use(bodyParser.urlencoded({extended: true}));
app.use(bodyParser.json());
app.use(expressValidator());
load('routes', {cwd: 'app'})
.then('infra')
.into(app);
return app;
}
A página index.ejs está a mesma coisa do exemplo disponibilizado pra download. E está dentro das pastas view e home.