Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

res.render is not a function

Tentei implementar o DAO com classe do ES6. Meu código ficou assim:

class ProdutosDAO {
    constructor(connection) {
        this._connection = connection;
    }

    lista(callback) {
        this._connection.query('select * from produtos', callback);
    }
}

/*function ProdutosDAO(connection) {
    this._connection = connection;
}

ProdutosDAO.prototype.lista = function (callback) {
    this._connection.query('select * from produtos', callback);
}*/

module.exports = function () {
    return ProdutosDAO;
}

Já o meu produto.js está assim:

module.exports = app => {
    // especifica a view a ser renderizada em /produtos
    // e passa o resultado de uma busca ao db
    app.get("/produtos", (req, res) => {

        let connection = app.infra.connectionFactory();
        let produtosBanco = new app.infra.ProdutosDAO(connection);

        produtosBanco.lista(function(err,res) {
            res.render('produtos/lista', {lista: res});
        });

        connection.end();
        //res.render('produtos/lista');
    });

}

Os arquivos são compilados normalmente, porém quando acesso o localhost recebe esse erro de res.render() is not a function. Alguém sabe o que pode estar causando isso?

2 respostas

Já encontrei o erro. Acontece que já estou usando o nome res como o segundo parâmetro do callback da app.get. Troquei o nome para results e foi

solução!

Boa Lucas, mandou bem :D

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software