2017-07-24 2 views
1

Ich benutze MySQL auf Nodejs. Ich verwende mysql pool die Verbindung zu erstellen:Wohin soll die mysql-Poolverbindung auf Nodejs beendet werden?

Var mysqk = require ('mysql'); 
Var pool = mysql.createPool ({my configs}); 

Meine Frage ist: Wo in der App werde ich pool.end() verwenden wie in der Dokumentation berichtet?

Zum Beispiel: In meiner www Datei habe ich einen Code erstellt, um andere Dinge zu veröffentlichen, wie ich in de Code gezeigt habe. Sollte ich dort pool.end() verwenden?

var app  = require('../app'); 
var debug = require('debug')('cancela:server'); 
var http = require('http'); 
var port = normalizePort(process.env.PORT || '4000'); 
app.set('port', port); 
var server = http.createServer(app); 

// my app codes... 
.. 
. 
. 

process.once('SIGTERM', end); 
process.once('SIGINT', end); 

function end() { 

    server.close(function(err){ 

    if(err) throw err(); 

     // Should I end the Pool connection here? <<<<<<=================================== 
     // pool.end(function (err) { 
     // // all connections in the pool have ended 
     // }); 

     console.log('Server endded!');   

     /* exit gracefully */ 
     process.exit(); 
    }); 
} 

Antwort

0

Manchmal wollen Sie manuell aus irgendwelchen Gründen den Verbindungspool lösen, so dass Sie pool.end(), bevor er schließlich Neuer den Pool nutzen können.

Die meisten Male möchten Sie es freigeben, wenn Ihr Server kurz vor dem Herunterfahren ist, damit Sie tun können, was Sie denken. Achten Sie auf den Ort des Funktionsaufrufs process.exit(). Es muss nach der Verbindungsfreigabe aufgerufen werden, andernfalls wird der Pool nicht freigegeben.

function end() { 
    server.close(function (err) { 
     if (err) throw err; 
     console.log('Server endded!'); 

     pool.end(function (err) { 
      if (err) throw err; 

      process.exit(); 
     }); 
    }); 
} 
+0

Danke! Ich werde es versuchen. – wBB

+0

So funktioniert es? –

+0

Entschuldigung für die Verzögerung bei der Beantwortung, aber ich musste unterbrechen, was ich tat und sobald ich wieder an die Arbeit komme, werde ich Sie wissen lassen. Vielen Dank! – wBB

Verwandte Themen