Klaus1: node.js und promise-mysql: wie schließe ich korrekt die Verbindungen?

Beitrag lesen

Hallo,

so sieht derzeit ein einfacher Select auf eine Tabelle aus:

				strQuery = 'select * from mytable';
				mysql.createConnection(mysqlConnData)
				.then(function(conn){
					connection = conn;
					var result = connection.query(strQuery);
					return result;
				}).then(function(rows){
					connection.end(function(err) { });
					return;
				}).catch(function(error){
					if (connection && connection.end) connection.end();
					//logs out the error
					console.log("Fehler bei: "+strQuery);
					console.log(error);
				});

Nach Abschluss des Selects möchte ich die Verbindung schließen. Aber entweder ich erhalte solche Meldungen:

Unhandled rejection Error: Cannot enqueue Quit after invoking quit.

Oder:

Unhandled rejection Error: Quit inactivity timeout

Wenn ich das connection.end() weglasse, erhalte ich nach einer Weile die Meldung, dass keine weitere Verbindung geöffnet wwerden kann (max connections reached).

Wenn die Verbindung schon vorher geschlossen wurde, ist es doch eigentlich egal, wenn ich sie "nochmal" schließen möchte. Also Fehler einfach unterdrücken?

Ich verstehe halt nicht, wieso die Verbindung überhaupt schon geschlossen sein könnte oder wie es hierbei zu einem Timeout kommen kann, wenn ich doch die Verbindung direkt wieder schließe. Das Query dauert nur ein Bruchteil einer Sekunde.

LG Klaus