Boa tarde pessoal,
estou reescrevendo os exemplos do cursos para o ES6 e tudo estava ocorrendo as mil maravilhas, mas quando eu cheguei na parte do prototype aí encontrei alguns probleminhas: Exemplo mostrado no curso:
function ProdutosBanco(connection){
this._connection = connection;
}
ProdutosBanco.prototype.lista = function(callback){
this._connection.query('select * from produtos',callback);
}
module.exports = function(){
return ProdutosBanco;
}
module.exports = function(app){
app.get('/produtos',function(req,res){
var connection = app.infra.connectionFactory();
var produtosBanco = new app.infra.produtoBanco(connection);
produtosBanco.lista(function(erros,resultados){
res.render('produtos/lista',{lista:resultados});
});
connection.end();
});
Minha versão com ES6
class ProdutoBanco {
constructor(connection) {
this._connection = connection;
}
lista(callback) {
this._connection.query('select * from livros', callback);
}
}
module.exports = (connection) => new ProdutoBanco(connection);
module.exports = (app) =>
app.get('/produtos', (request, response) => {
let connection = app.infra.connectionFactory();
console.log(app.infra.produtosBanco);
let produtosBanco = app.infra.produtosBanco(connection);
produtosBanco.lista((err, result) => response.render('produtos/lista', {lista: result}));
connection.end();
});
Quando eu tento executar url /produtos
eu tenho esse problema:
TypeError: app.infra.produtosBanco is not a function
at app.get (/home/joao/Projetos/home-workspace/casadocodigo-node/app/routes/produtos.js:6:39)
at Layer.handle [as handle_request] (/home/joao/Projetos/home-workspace/casadocodigo-node/node_modules/express/lib/router/layer.js:95:5)
at next (/home/joao/Projetos/home-workspace/casadocodigo-node/node_modules/express/lib/router/route.js:137:13)
at Route.dispatch (/home/joao/Projetos/home-workspace/casadocodigo-node/node_modules/express/lib/router/route.js:112:3)
at Layer.handle [as handle_request] (/home/joao/Projetos/home-workspace/casadocodigo-node/node_modules/express/lib/router/layer.js:95:5)
at /home/joao/Projetos/home-workspace/casadocodigo-node/node_modules/express/lib/router/index.js:281:22
at Function.process_params (/home/joao/Projetos/home-workspace/casadocodigo-node/node_modules/express/lib/router/index.js:335:12)
at next (/home/joao/Projetos/home-workspace/casadocodigo-node/node_modules/express/lib/router/index.js:275:10)
at expressInit (/home/joao/Projetos/home-workspace/casadocodigo-node/node_modules/express/lib/middleware/init.js:40:5)
at Layer.handle [as handle_request] (/home/joao/Projetos/home-workspace/casadocodigo-node/node_modules/express/lib/router/layer.js:95:5)
Alguém pode por favor me ajudar a encontrar o erro?
Agradeço as resposta desde já.