javascript - 如何使用 2 个独立的数据库,一个用于写入端,一个用于读取端。 (两个数据库通过eventbus同步)

标签 javascript node.js typescript cqrs nestjs

我正在使用@nestjs/cqrs模块。如何使用两个独立的数据库,一个用于写入端,一个用于读取端。 (两个数据库通过eventbus同步)

谢谢

最佳答案

使用 typeorm,您可以通过给出连接名称来指定多个数据库(如果您不指定名称,则将使用默认连接):

@Module({
  imports: [
    TypeOrmModule.forRoot({
      ...defaultOptions,
      name: 'writeConnection',
      host: 'write_db_host',
      entities: [WriteEntity],
    }),
    TypeOrmModule.forRoot({
      ...defaultOptions,
      name: 'readConnection',
      host: 'read_db_host',
      entities: [ReadEntity],
    }),
  ],
})
export class ApplicationModule {}

然后在功能模块中,通过指定连接名称导入实体:

@Module({
  imports: [
    TypeOrmModule.forFeature([ReadEntity], 'readConnection'),
    TypeOrmModule.forFeature([WriteEntity], 'writeConnection'),
  ],
})
export class FeatureModule {}

有关详细信息,请参阅 docs .

关于javascript - 如何使用 2 个独立的数据库,一个用于写入端,一个用于读取端。 (两个数据库通过eventbus同步),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55465785/

相关文章:

javascript - 在提取调用中将响应主体与自定义错误一起抛出

javascript - Angular 渐进式 Web 应用程序在本地主机上工作但不在 IP 上

javascript - 模块化 Nightmare 并传递 Nightmare 实例

javascript - 与 disableSelection 函数相反,用于为特定 HTML 元素启用文本选择

javascript - 无法让 JQuery 与 Express js 一起使用

node.js - 使用 docker-compose 对 Node Express 应用程序进行 Docker 化

angularjs - 在 AngularJS 应用程序中使用 node_modules

node.js - 将 Node 模块 SSH2 与 shell 一起使用

unit-testing - Jasmine 路线 spy - 未定义不是一个对象(评估 'navigate.calls.mostRecent().args' )

javascript - 测试 typescript 装饰器