Я использую inversify
с inversify-express-utils
.
У меня обычная настройка inversify/express
.
B module
- это класс, который выглядит как это:
import { injectable } from 'inversify';
import SpellCorrector from 'spelling-corrector';
@injectable()
export class SpellCorrectorFactory {
private corrector: any;
constructor() {
this.corrector = new SpellCorrector();
this.corrector.loadDictionary();
}
public correct = (text: string): string => this.corrector.correct(text);
}
Теперь проблема в том, что, как вы можете видеть в конструкторе, у меня есть эта строка кода:
this.corrector.loadDictionary()
Эта строка занимает секунду для выполнения . Таким образом, в основном кажется, что фактическое создание экземпляра происходит, когда я @inject
service B
для обслуживания A
Итак, каждый раз, когда я делаю запрос, выполняется конструктор SpellCorrectorFactory
, поэтому запрос занимает более 1000 мс вместо этого менее 100 мс.
Как я могу привязать этот класс к инверсии, чтобы во время привязки был создан экземпляр класса, а в A module
у меня был доступ к экземпляру, который был создан при запуске приложения, а не когда я отправить запрос по пути express?
Заранее спасибо!