【问题标题】:NestJS, using typeorm on providersNestJS,在提供者上使用 typeorm
【发布时间】:2020-07-19 00:50:22
【问题描述】:

我想创建一个从 db 查询实体的提供程序。 (我真正感兴趣的是在创建提供程序时使 typeorm 可用)。 我明白了

[ExceptionHandler] Connection "default" was not found. - {"trace":"ConnectionNotFoundError: Connection \"default\" was not found.\n

我尝试使用服务,使用自定义存储库,但没有任何效果。我在模块中有这样的东西:

{
      provide: MICROSERVICE_ID,
      useFactory: async (): Promise<Microservice> => {
        //ignore logic
        return await getRepository(Microservice).findOne(1);
      },
      inject: []
    }

TypeOrm 在 app.module.ts 上导入

TypeOrmModule.forRootAsync({
      imports: [ConfigModule],
      inject: [ConfigService],
      useFactory: async (configService: ConfigService) => (configService.get('database'))
    }),

感谢任何帮助。

【问题讨论】:

    标签: nestjs typeorm


    【解决方案1】:

    通过从 typeorm 注入 Connection 修复。

    import { getRepository, Connection } from 'typeorm';
    {
          provide: MICROSERVICE_ID,
          useFactory: async (): Promise<Microservice> => {
            //ignore logic
            return await getRepository(Microservice).findOne(1);
          },
          inject: [Connection]
        }
    

    【讨论】:

      【解决方案2】:

      检查您的数据库文件。实体可能无法按预期加载。 对于最新的 NestJS 版本。我们应该从 ./dist/ 加载

      【讨论】:

      • 它在控制器方法内部工作,但不是来自提供者
      • 一旦 typeorm 无法连接到实体,就会出现这个问题。没有存储库
      猜你喜欢
      • 2022-07-14
      • 1970-01-01
      • 2021-04-28
      • 1970-01-01
      • 1970-01-01
      • 2022-11-18
      • 2021-07-17
      • 2021-08-02
      • 2021-04-23
      相关资源
      最近更新 更多