【问题标题】:NestJS-Sequelize: InjectModel vs Predefined String TokenNestJS-Sequelize:InjectModel 与预定义字符串令牌
【发布时间】:2020-03-11 04:39:27
【问题描述】:

试图找出最好的方法。

1) NestJS 文档中的 Sequelize 部分显示以下方式:

const catsProviders = [
  {
    provide: 'CATS_REPOSITORY',
    useValue: Cat,
  }

然后在服务中

 @Inject('CATS_REPOSITORY') private readonly catsRepository: typeof Cat

2) 最近我在 Nest github Sequelize 中找到了示例:

@InjectModel(User) private readonly userModel: typeof User,

在性能或内存使用方面是否有任何区别 - 至少对于 Sequelize 而言? 第一种方法更加冗长:您还需要为令牌创建一个常量文件。 但至少有一个预定义的令牌意味着我们在应用程序的不同部分使用相同的提供者实例? 但也许 InjectModel 在幕后做同样的事情?

【问题讨论】:

    标签: nestjs sequelize-typescript


    【解决方案1】:

    @InjectModel()@Inject(getModelToken()) 的包装器,它最终返回一个类似connectionPrefixEntityRepository 的令牌(这实际上与@nestjs/typeorm@InjectRepository() 的功能相同)。因此@InjectModel(Entity)@Inject(CONST_TOKEN) 之间没有性能差异,因为它们本质上是相同的。

    【讨论】:

      猜你喜欢
      • 2021-09-28
      • 2014-10-11
      • 2016-11-09
      • 1970-01-01
      • 1970-01-01
      • 2011-10-23
      • 2013-03-27
      • 2012-11-18
      • 1970-01-01
      相关资源
      最近更新 更多