Nest не может разрешить зависимости, когда я пытался использовать @InjectJavascript

Форум по Javascript
Ответить
Гость
 Nest не может разрешить зависимости, когда я пытался использовать @Inject

Сообщение Гость »


Я пытался написать модуль npm. Теперь у меня есть два модуля:

import { DynamicModule, Module } из '@nestjs/common'; импортировать {DATABASE_TYPE, GameSystemDBModuleFactory, IConfig} из './common'; импортировать { GameSystemDBCacheModule } из './cache'; импортировать { GameSystemDBService } из './game-system-db.service'; @Модуль({}) класс экспорта GameSystemDBModule { статический регистр (конфигурации: IConfig ): DynamicModule { возвращаться { модуль: GameSystemDBModule, импорт: [ GameSystemDBModuleFactory.createModule(configs.databaseConfig), GameSystemDBCacheModule.register(configs.cacheConfig), ], провайдеры: [ GameSystemDBService, { предоставить: «SESSION_CONFIG», useValue: configs.sessionConfig, }, ], экспорт: [GameSystemDBService, 'SESSION_CONFIG'], }; } } и

import { DynamicModule, Module } из '@nestjs/common'; Импортировать { GAME_SYSTEM_DB_SERVICE_TOKEN, IPostgresConnectionConfig, } из '../common'; импортировать { PostgresGameSystemDBService } из './postgres-game-system-db.service'; импортировать {SequelizeModule} из '@nestjs/sequelize'; импортировать { UserSessionModule } из './user-session'; @Модуль({}) класс экспорта PostgresGameSystemDBModule { статический регистр (конфигурация: IPostgresConnectionConfig): DynamicModule { константные поставщики = [ { предоставить: GAME_SYSTEM_DB_SERVICE_TOKEN, useClass: PostgresGameSystemDBService, }, ]; возвращаться { модуль: PostgresGameSystemDBModule, импорт: [SequelizeModule.forRoot(config), UserSessionModule], провайдеры, экспорт: поставщики, }; } } В сервисе я пытаюсь использовать @Inject:

import { Inject, Injectable } из '@nestjs/common'; импортировать { GameSystemDBCacheService } из '../cache'; импортировать { SessionConfig } из 'lib/common/types/session-config.type'; импортировать {UserSessionRepository} из './user-session'; @Инъекционный() класс экспорта PostgresGameSystemDBService реализует IGameSystemDBService { конструктор( частный только для чтения userSessionRepository: UserSessionRepository, частная играSystemDBCacheService только для чтения: GameSystemDBCacheService, @Inject('SESSION_CONFIG') частный сеанс SessionConfig только для чтения: SessionConfig, ) {} } И я получаю сообщение об ошибке:

[Nest] 16076 - 22.09.2023, 10:10:05 ОШИБКА [ExceptionHandler] Nest не может разрешить зависимости PostgresGameSystemDBService (UserSessionRepository, GameSystemDBCacheService, ?). Убедитесь, что аргумент SESSION_CONFIG по индексу [2] доступен. в контексте PostgresGameSystemDBModule. Возможные решения: - Является ли PostgresGameSystemDBModule допустимым модулем NestJS? — Если SESSION_CONFIG является провайдером, является ли он частью текущего модуля PostgresGameSystemDBModule? - Если SESSION_CONFIG экспортируется из отдельного @Module, импортируется ли этот модуль в PostgresGameSystemDBModule? @Модуль({ imports: [ /* Модуль, содержащий SESSION_CONFIG */ ] }) Что мне следует сделать, чтобы решить эту проблему?

Я пытался поместить SESSION_CONFIG в экспорт в GameSystemDBModule, но эта ошибка все равно возникает. В сервисе PostgresGameSystemDBService я могу получить доступ к свойствам SESSION_CONFIG.
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»