#javascript #typescript #module #dependencies #nestjs
Вопрос:
Я пытаюсь экспортировать и импортировать услугу в NestJS. Это кажется простым, и я думал, что это должно работать так, но я получил сообщение об ошибке, в котором говорится, что Nest не может разрешить зависимости.
Модуль настроек
Этот модуль содержит службу, которую необходимо импортировать, и экспортирует ее.
@Module({
imports: [
MongooseModule.forFeature([{ name: Setting.name, schema: SettingSchema }]),
],
providers: [SettingsService],
exports: [SettingsService],
})
export class SettingsModule {}
MsgraphМодуль
Этот модуль должен импортировать службу через модуль, потому что служба вводится в их службу.
@Module({
imports: [SettingsModule],
providers: [MsgraphService],
})
export class MsgraphModule {}
Модуль приложения
@Module({
imports: [
MongooseModule.forRoot('mongodb://localhost/lead-import', {
useCreateIndex: true,
}),
MsgraphModule,
SettingsModule,
...
],
controllers: [AppController],
providers: [AppService],
})
export class AppModule {}
Что я здесь делаю не так?
Комментарии:
1. Можете ли вы
SettingsService
также предоставить код?
Ответ №1:
Проблема заключалась в том, что я использовал декоратор @Inject (), который необходим только для пользовательских инъекций зависимостей.
@Injectable()
export class MsgraphService {
private client: Client;
private authenticator;
constructor(@Inject() private settingsService: SettingsService) {
this.init();
this.authenticator = new MSGraphAuthenticator();
}
...
}
Так что удаление @Inject()
сделало свое дело.