【问题标题】:how to connect TypeORM MySQL in NestJs?如何在 NestJs 中连接 TypeORM MySQL?
【发布时间】:2021-09-08 11:16:26
【问题描述】:

有很多关于在 NestJs 中连接数据库的问题。
但我必须只使用 URL(包括主机、端口、数据库)、用户名、密码来连接数据库。
它没有用,尽管有人告诉我有必要使用user 而不是username 或使用像ex) mysql://localhost:3306/demo?user=test 这样的URL 添加用户名。
我该如何解决这个问题?谢谢

  createMainDBTypeOrmOptions(): TypeOrmModuleOptions {
    return {
      type: this.configDBProperties.mainType,
      replication: {
        master: {
          url: 'mysql://localhost:3306/demo?useUnicode=true&characterEncoding=UTF8',
          username: this.configDBProperties.mainMasterUsername,
          password: this.configDBProperties.mainMasterPassword,
        },
        slaves: [
          {
            url: 'mysql://localhost:3306/demo?useUnicode=true&characterEncoding=UTF8',
            username: this.configDBProperties.mainSlaveUsername,
            password: this.configDBProperties.mainSlavePassword,
          },
        ],
      },
      entities: [School, Student],
    };
  }

【问题讨论】:

    标签: typescript nestjs typeorm


    【解决方案1】:

    我从 app.module 和一个 .env 文件创建与数据库的连接,其中包含我在这些代码行中使用的 env 变量

    @Module({
      imports: [
        ConfigModule.forRoot(),
        TypeOrmModule.forRootAsync({
          useFactory: () => ({
            type: 'mysql',
            host: process.env.TYPEORM_HOST,
            port: parseInt(process.env.TYPEORM_PORT) || 3306,
            username: process.env.TYPEORM_USERNAME,
            password: process.env.TYPEORM_PASSWORD,
            database: process.env.TYPEORM_DATABASE,
            entities: [__dirname + '/**/*.entity{.ts,.js}'],
            synchronize: false,
            migrationsTableName: process.env.TYPEORM_MIGRATIONS_TABLE_NAME,
            migrations: [process.env.TYPEORM_MIGRATIONS],
            migrationsRun: process.env.TYPEORM_MIGRATIONS_RUN === 'true'
          })
        }),
    ...
    ],
      controllers: [],
      providers: []
    })
    

    【讨论】:

    • 感谢您的回复。我只想使用 url,用户名。密码我知道你的解决方案。无论如何,我刚刚制作了将 url 拆分为(主机、数据库、端口)的功能,我做到了:)
    猜你喜欢
    • 2019-08-13
    • 2020-09-13
    • 2020-01-25
    • 2022-01-21
    • 2021-12-03
    • 2020-12-20
    • 2021-05-26
    • 2021-08-05
    • 2019-08-02
    相关资源
    最近更新 更多