Nest JS -Sequelize: InjectModel против предопределенного строкового токена - PullRequest
0 голосов
/ 10 марта 2020

Попытка выяснить лучший подход.

1) Секвизировать секцию в Nest JS документы показывают следующим образом:

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 делает то же самое под капотом?

1 Ответ

0 голосов
/ 10 марта 2020

@InjectModel() - это обертка вокруг @Inject(getModelToken()), которая в итоге возвращает токен, подобный connectionPrefixEntityRepository (на самом деле это та же функциональность, что и @nestjs/typeorm s @InjectRepository()). Таким образом, нет никакой разницы в производительности между @InjectModel(Entity) и @Inject(CONST_TOKEN), поскольку они по существу одинаковы.

...