Erro ao mudar a classe para prototype
dao
function ProdutosDAO(connection) {
this._connection = connection;
}
ProdutosDAO.prototype.lista = function(callback) {
this._connection.query('select * from produtos',callback);
}
module.exports = function(){
return ProdutosDAO;
};
`
//produto js
module.exports = function(app){
//log
console.log("executando requisição da listagem dos produtos.");
//separamos a regra de negocio da apresentação da tela.
app.get('/produtos',function(req,res){
//abre a conexao
var connection = app.infra.connectionFactory();
var dao = new app.infra.ProdutosDAO(connection); //o uso do new cria um novo contexto para this.
console.log('passou por aqui');
//executa a query
dao.lista(function(err, results){
console.log(results);
res.render('produtos/lista',{lista:results});
});
//encerra a conexao.
connection.end();
});
}
erro:
ReferenceError: C:\TI\ALURA\CURSOS\NODEJS\Projeto\casadocodigo\app\views\produtos\lista.ejs:10
8| <td>preco</td>
9| </tr>
>> 10| <%for(var i=0;i<listaProdutos.length;i++) {%>
11| <tr>
12| <td><%=listaProdutos[i].id%></td>
13| <td><%=listaProdutos[i].titulo%></td>
listaProdutos is not defined
at eval (eval at <anonymous> (C:\TI\ALURA\CURSOS\NODEJS\Projeto\casadocodigo\node_modules\ejs\lib\ejs.js:524:12), <anonymous>:11:21)
at returnedFn (C:\TI\ALURA\CURSOS\NODEJS\Projeto\casadocodigo\node_modules\ejs\lib\ejs.js:555:17)
at tryHandleCache (C:\TI\ALURA\CURSOS\NODEJS\Projeto\casadocodigo\node_modules\ejs\lib\ejs.js:203:34)
at View.exports.renderFile [as engine] (C:\TI\ALURA\CURSOS\NODEJS\Projeto\casadocodigo\node_modules\ejs\lib\ejs.js:412:10)
at View.render (C:\TI\ALURA\CURSOS\NODEJS\Projeto\casadocodigo\node_modules\express\lib\view.js:128:8)
at tryRender (C:\TI\ALURA\CURSOS\NODEJS\Projeto\casadocodigo\node_modules\express\lib\application.js:640:10)
at EventEmitter.render (C:\TI\ALURA\CURSOS\NODEJS\Projeto\casadocodigo\node_modules\express\lib\application.js:592:3)
at ServerResponse.render (C:\TI\ALURA\CURSOS\NODEJS\Projeto\casadocodigo\node_modules\express\lib\response.js:971:7)
at Query._callback (C:\TI\ALURA\CURSOS\NODEJS\Projeto\casadocodigo\app\routes\produtos.js:25:15)
at Query.Sequence.end (C:\TI\ALURA\CURSOS\NODEJS\Projeto\casadocodigo\node_modules\mysql\lib\protocol\sequences\Sequence.js:86:24)