3
respostas

Erro ao criar connectionFactory

Consigo realizar o select, é exibido o resultado json e se eu realizar nova requisição via browser acontece o seguinte erro:

events.js:141
      throw er; // Unhandled 'error' event
      ^

Error: read ECONNRESET
    at exports._errnoException (util.js:870:11)
    at TCP.onread (net.js:550:26)

Li que também posso usar express-myconnection como pool.

3 respostas

tentou usar esse código aqui?

 var errors = req.validationErrors();

        if(errors){
              res.format({
                html: function(){
                    res.status(400).render("produtos/form",{validationErrors:errors,produto:produto});
                },
                json: function(){
                    res.status(400).send(errors);
                }
            });
            return;
        }

Na verdade creio que seja na hora que você usa a listagem certo? Se for tenta usar esse código aqui:

app.get("/produtos",function(req,res) {

        var connection = app.infra.connectionFactory();
        var produtoDao = new app.infra.ProdutoDao(connection);

        produtoDao.lista(function(error,results,fields){


            res.format({
                html: function(){
                    res.render("produtos/lista",{lista:results});
                },
                json: function(){
                    res.json(results);
                }
            });

        })
        connection.end();
    });

Esse código lhe retorna no formato Json e no formato Html do Accept e Content-Type = html.

Espero que ajude. Se for isso da uma resposta de Ok.

Tive este problema no momento de isolar a factory de criação de conexão usando postgres. O erro acontecia no momento de importação do módulo, pois a criação da variável a ser devolvida pelo modulo estava fora do return, ou seja só era criada uma vez e não a cada requisição. Segue o código:

var postgres = require('pg');
var config = {
              user: 'postgres', //env var: PGUSER
              database: 'casadocodigo_nodejs', //env var: PGDATABASE
              password: 'root', //env var: PGPASSWORD
              host: 'localhost', // Server hosting the postgres database
              port: 5432, //env var: PGPORT
              max: 20, // max number of clients in the pool
              idleTimeoutMillis: 30000, // how long a client is allowed to remain idle before being closed
            };

module.exports = function(){
    return new postgres.Client(config);
}