目前正尝试使用promises和pooling实现一种不同的方法来连接我的数据库。这就是我现在所拥有的:
// 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);
}
}
我正在使用this库,它只是node-mysql
包裹着BlueBird的承诺。有了这个,我想利用BlueBird的disposing
和using
功能,所以我只能在需要的时候连接到数据库。
目前虽然我从Connection.js
的mysql收到错误:cb is not a function
。基于this问题,我对我做错了什么有点了解,但我不确定如何使用BlueBird的dispose / using范例。提前感谢任何有帮助的人!
答案 0 :(得分:0)
我非常缺乏监督。以下一行:
return pool.getConnection(configDB.connectionData).disposer...
应该是:
return pool.getConnection().disposer...
很抱歉。仍然得到一个错误connection.release
不是一个奇怪的函数,但至少我可以继续进行调试。