Derzeit versucht, einen anderen Ansatz zum Verbinden mit meiner Datenbank mit Versprechen und Pooling zu implementieren. Das ist, was ich als der Moment haben:Bluebird, node-mysql, pooling und disposing
// databaseConnection.js
var configDB = require('./database.js');
var mysql = require('promise-mysql');
var pool = mysql.createPool(configDB.connectionData);
function getSqlConnection() {
return pool.getConnection(configDB.connectionData).disposer(function(connection) {
connection.release();
});
}
module.exports = getSqlConnection;
Dann benutze ich die Abfrage wie folgt aus:
#sqlQuery.js
var Promise = require("bluebird");
var getSqlConnection = require('./databaseConnection')
Promise.using(getSqlConnection(), function(connection) {
return connection.query("SELECT * FROM EXAMPLE_TABLE").then(function(row) {
return process(rows);
}
}
ich this Bibliothek bin mit der node-mysql
ist nur mit Bluebird Versprechen eingewickelt. Damit wollte ich die Fähigkeiten von BlueBird disposing
und using
nutzen, so dass ich nur mit der DB verbunden werden würde, wenn ich es sein musste.
Zur Zeit bekomme ich einen Fehler von Connection.js
von mysql: cb is not a function
. Basierend auf this Frage habe ich etwas Ahnung von dem, was ich falsch mache, aber ich bin mir nicht sicher, wie ich das mit BlueBirds Dispose/Using Paradigma verwenden würde. Vielen Dank im Voraus für alle, die helfen können!
In Ihrem 'sqlQuery.js'-Code rufen Sie' getSqlConnection() 'auf - ohne das Argument' cb' (Callback?) Zu übergeben. Wofür wird dieses 'cb' verwendet? – ishmaelMakitla
Entschuldigung. Ich habe diesen Code von meiner geänderten Quelle kopiert. Was da oben ist, sollte jetzt das Original sein. Ich verwende keinen Rückruf in meinem Code. Es wird auch nicht erwähnt, dass man in der 'node-mysql'-Dokumentation eine – wootencl
benötigt. OK, jetzt, da du' cb' dort nicht mehr hast - bekommst du immer noch dieselbe Fehlermeldung? – ishmaelMakitla