2016-04-18 2 views
0

Ich habe eine einfache Anwendung mit einer Postgres-Datenbank verbunden. Es liest etwa 30 Zeilen von Daten, wenn Sie die Anwendung laden. aber jetzt und dann wird es nicht laden und wenn ich auf meinen Server schaue, habe ich den Fehler Fehler: Verbindung beendet.Postgresql Fehler: Verbindung beendet

normalerweise, wenn ich es in kurzer Zeit mehrmals aufladen.

weiß jemand, warum dies passieren könnte? arbeite ich es zu hart?

der Code ist unten:

function getDB(callback){ 
     console.log('inside getDB') 
     Client.connect(function(err){ 
      if(err){ 
       return console.log('connection error', err) 
      } 
      Client.query('SELECT * FROM gallery', function(err, result){ 
       if(err){ 
        return console.log('error receiving data', err) 
       } else{ 
       callback(null, result.rows) 
       } 
       Client.end() 
      }) 

     }) 
    } 

Antwort

0

Es sieht aus wie Sie node-postgres verwenden. Sie sollten das Verbindungs-Pooling in Betracht ziehen. Aus der Dokumentation:

"Generally you will access the PostgreSQL server through a pool of clients. A client takes a non-trivial amount of time to establish a new connection. A client also consumes a non-trivial amount of resources on the PostgreSQL server - not something you want to do on every http request. Good news: node-postgres ships with built in client pooling."

Beim Erstellen einer neuen Verbindung ist viel los und Sie sollten versuchen, es möglichst zu vermeiden. Pooling könnte in Ihrer Situation helfen.