繁体   English   中英

节点导出 MySQL 池集群

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM