【问题标题】:How to dynamically connect to a database in nestjs?如何在nestjs中动态连接数据库?
【发布时间】:2021-01-22 00:36:25
【问题描述】:

我有多个要连接的数据库。但其中只有一个具有静态名称。例如,该数据库的名称是stores,其中我有一个表,指示其他数据库的名称。现在我想在调用第一条路由后更改连接提供程序。我该怎么做?

我尝试使用动态模块,但我不知道如何使用它。

【问题讨论】:

  • 创建您自己的数据库模块,并将数据库名称传递给提供者,或者您要连接的 uri,将这些信息与连接的关系存储在某处,例如字符串 -> 连接,fe: Map使用 DB URI 或带有键的 DB 名称作为连接处理程序。那么你应该能够实现你的目标。
  • @cojack,谢谢。但是你能举例说明如何做到这一点吗?

标签: typescript sequelize.js nestjs


【解决方案1】:
@Injectable({ scope: Scope.REQUEST })
export class MongooseConfigService implements MongooseOptionsFactory {
    constructor(
        @Inject(REQUEST) private readonly request: Request,) {
    }

    createMongooseOptions(): MongooseModuleOptions {
        return {
            uri: request.params.uri, // Change this to whatever you want
        };
    }
}

你可以阅读更多关于Injection Scopes

并且可以在这里看到same issue

【讨论】:

    猜你喜欢
    • 2020-12-24
    • 1970-01-01
    • 1970-01-01
    • 2021-05-11
    • 2020-07-21
    • 2019-01-21
    • 2022-11-19
    • 2015-08-09
    • 2019-08-29
    相关资源
    最近更新 更多