Можно ли использовать внедрение зависимостей приложения lb в основное приложение express? - PullRequest
0 голосов
/ 10 января 2020

Я следовал этому турориалу: express с обратной связью

Затем я попробовал множество комбинаций, чтобы внедрить в мой express маршрут службу, созданную в приложении обратной связи, но безуспешно ,

каждые @inject заканчиваются ошибкой типа <rejected> Error: The key 'services.OptinDefinitionProvider' is not bound to any value in context application с uuid.

самое близкое, что я могу получить, это делать в классе ExpressServer:


    this.expressApp.use(async (req, res, next) => {
      res.locals = {}
      res.locals.services = {
        context: this.lbApp.getOwnerContext('services.OptinDefinition'),
        optinDefinition: (await this.lbApp.get<any>('services.OptinDefinition')).find.bind(this.lbApp.),
        consent: await this.lbApp.get('services.Consent'),
        transaction: await this.lbApp.get('services.Transaction')
      };

      next();
    });

, но когда я делаю res.locals.services.transaction.find(), это заканчивается на this.datasource is not a function, this doesn't contain such a member. Как видите, я пытался связать (через .bind(...)) различные объекты с поиском optinDefinition, но безуспешно.

Как вы думаете, есть решение?

Большое спасибо за вашу помощь.

...