[英]Node exports MySQL Pool Cluster
我是 node 的新手,我正在嘗試在其中使用 MySQL 池集群,但我不確定如何導出它。
目前我在 /libs/mysql.js 中有以下內容:
poolCluster.add('db1', {
host: config.databases.hostname,
user: config.databases.db1.username,
password: config.databases.db1.password,
database: config.databases.db1.database,
connectionLimit: config.databases.connectionLimit
});
poolCluster.add('db2', {
host: config.databases.hostname,
user: config.databases.db2.username,
password: config.databases.db2.password,
database: config.databases.db2.database,
connectionLimit: config.databases.connectionLimit
});
module.exports = {
getConnection: (callback) => {
return poolCluster.getConnection(callback);
}
};
我正在嘗試在 models/monitor.js 中使用它,如下所示:
let poolCluster = require('../libs/mysql');
let moment = require('moment');
exports.select = function (sql, values, callback) {
poolCluster.getConnection('db1', (err, connection) => {
if (err) {
callback(err);
} else {
connection.query(sql, values, (err, result) => {
connection.release();
if (err) {
console.log(err);
callback(err);
} else {
callback(null, result)
}
})
}
})
};
現在的問題是我收到一個錯誤,指出 cb 不是函數。
這是在節點中導出 mysql 池集群的正確方法嗎?
您正在導出為getConnection: (callback) => {}
但您正在使用getConnection(string, callback)
調用相同的函數。
根據文檔:
您可以像這樣調用 getConnection:
// Target Group : ALL(anonymous, MASTER, SLAVE1-2), Selector : round-robin(default)
poolCluster.getConnection(function (err, connection) {});
// Target Group : MASTER, Selector : round-robin
poolCluster.getConnection('MASTER', function (err, connection) {});
因此,基本上您需要將從您的getConnection
函數獲得的參數傳遞給 mysql 的getConnection
函數。 所以這應該可以解決問題:
module.exports = {
getConnection: (...args) => {
return poolCluster.getConnection(...args);
}
};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.