Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用倍数DB';在带有Sequelize的模型中的s连接?_Javascript_Mysql_Node.js_Database_Sequelize.js - Fatal编程技术网

Javascript 如何使用倍数DB';在带有Sequelize的模型中的s连接?

Javascript 如何使用倍数DB';在带有Sequelize的模型中的s连接?,javascript,mysql,node.js,database,sequelize.js,Javascript,Mysql,Node.js,Database,Sequelize.js,我想在我的数据库中建立多个连接,但对任何连接使用相同的模型 我试图使用singleton模式创建一个配置连接列表,但我不知道如何继续该配置连接 数据库客户端对象 class DatabaseClient { constructor(username, password, database) { this.username = username; this.password = password; this.database = databa

我想在我的数据库中建立多个连接,但对任何连接使用相同的模型

我试图使用singleton模式创建一个配置连接列表,但我不知道如何继续该配置连接

数据库客户端对象

class DatabaseClient {
    constructor(username, password, database) {
        this.username = username;
        this.password = password;
        this.database = database;
        this.host = '127.0.0.1';
        this.dialect = 'mysql';

        this.logging = (log) => {
            console.log(log)
        }
    }
}
与我的应用程序连接的数据库

class DatabasesConnected {
    constructor() {
        this.databases = []
    }

    addDatabase(loginUser, databaseClient) {
        this.databases.push({ loginUser, databaseClient })
        console.log(this.databases);
    }

    getDatabaseByLoginUser(loginUser) {
        const database = this.databases
            .filter(f => f.loginUser === loginUser)[0].databaseClient

        return database;
    }

    getDatabase() {
        return this.databases;
    }

}

module.exports = new DatabasesConnected()

我希望当用户登录时,我可以使用保存在DatabasesConnected中的连接配置,但我不知道如何仅使用一个模型建立这些多个连接。

为什么要为每个用户创建一个新连接?此外,筛选器返回一个数组,并且代码错误,数组的键将抛出错误。可能使用find()和null checkconst database=this.databases.find重写(f=>f.loginUser==loginUser);如果(database){return database.databaseClient;}我想这会对你有帮助,Dhananjai Pa,系统中的每个客户端都必须有一个不同的数据库,因为它不能在不同的用户之间共享,所以我不能在整个应用程序中使用数据库,非常感谢你,我现在看到了过滤器错误,为什么你要为每个用户创建一个新的连接,过滤器返回一个数组,如果代码错误,数组的键将抛出错误。可能使用find()和null checkconst database=this.databases.find重写(f=>f.loginUser==loginUser);如果(database){return database.databaseClient;}我想这会对你有帮助,Dhananjai-Pa,系统中的每个客户端都必须有一个不同的DB,因为它不能在不同的用户之间共享,所以我不能在整个应用程序中使用数据库,非常感谢你,我现在看到了过滤错误