Лучшие практики внедрения стоимости NestJS - PullRequest
0 голосов
/ 30 октября 2019

Я использую NestJS для разработки микросервиса. Я использую внедрение зависимостей и понимаю, как вводить значения / классы и использовать фабричные методы.

Мой вопрос заключается в том, как далеко нужно пройти внедрение зависимостей в NestJS? Каковы лучшие практики?

Например, я разрабатываю систему обратной связи. Это получает сообщение в виде строки. Затем он выполняет анализ настроений и распознавание ключевых фраз. Анализ абстрагирован, поэтому я могу использовать Google / AWS и т. Д. Это показано ниже:

{
    provide: NaturalLanguageAnalysisProvider,
    useClass: AmazonNaturalLanguageAnalysisProvider
}

AmazonNaturalLanguageAnalysisProvider требует настройки. Например, область экземпляра Comprehend.

Используя внедрение значения NestJS, я мог бы создать поставщика значений с токеном AMAZON_REGION и вставить его в конструктор службы.

{
    provide: 'AMAZON_REGION',
    useValue: 'eu-west-2',
}

В качестве альтернативы я мог бы использовать метод useFactory для импорта и возврата сконфигурированного объекта AWS.

{
    provide: 'COMPREHEND',
    useFactory: args => {
        return new AWS.Comprehend(/*configure*/);
    }
}

Полагаю, они также могут быть предоставлены через переменные среды.

Если бы я хотел создать настраиваемых поставщиков, каков наилучший способ передачи данных конфигурации.

  1. Значения поставщиков для каждой переменной конфигурации - я подозреваю, что это может привести к чрезмерному определению поставщиков вызывающего модуля

  2. Заводские методы

  3. Что-то еще

Буду признателен за любые советы по этому поводу!

...