現在、約束とプールを使用してデータベースに接続するための別のアプローチを実装しようとしています。これは私が今のよう持っているものです。Bluebird、node-mysql、プーリング、および廃棄
// 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;
は、その後、私はこのようなクエリを使用します。
#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);
}
}
私はちょうどnode-mysql
ブルーバード約束でラップされthisライブラリを使用しています。それで、BlueBirdのdisposing
とusing
機能を利用したいので、私が必要としていたときだけDBに接続します。
現在、私はConnection.js
からmysqlのエラー:cb is not a function
を取得していますが、 this質問に基づいて私は間違っていることを考えていますが、私はBlueBirdのdispose/usingパラダイムでどのように使用するのかは分かりません。助けることができる誰のためにも事前に感謝します!
'sqlQuery.js'コードでは' cb'(コールバック?)引数を渡さずに 'getSqlConnection()'を呼び出しています。この 'cb'は何のために使われていますか? – ishmaelMakitla
申し訳ありません。修正されたソースからそのコードをコピーしました。何が今そこにあるのはオリジナルでなければならない。私は自分のコードでコールバックを使用しません。また、 'node-mysql'のマニュアルで要求することも言及していません。 – wootencl
もう' cb'がないので、今でも同じエラーメッセージが表示されていますか? – ishmaelMakitla