簡體   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