#typescript #loopback4
#typescript #loopback4
Вопрос:
У меня следующая ошибка 500 при запуске контроллера с обратной связью 4.
Unhandled error in GET /v1/me/societes: 500 Error: No design-time type metadata found while inspecting FirebaseAuthService.constructor[2]. You can either use `@service(ServiceClass)` or ensure `emitDecoratorMetadata` is enabled in your TypeScript configuration. Run `tsc --showConfig` to print the final TypeScript configuration of your project.
Я думаю, что проблема связана FirebaseService
с внедрением здесь :
@injectable({scope: BindingScope.SINGLETON})
export class FirebaseAuthService {
constructor(
@repository(UtilisateurRepository)
public utilisateurRepository: UtilisateurRepository,
@repository(TokenRepository)
public tokenRepository: TokenRepository,
@service(FirebaseService)
public firebaseService: FirebaseService,
) {}
Но FirebaseService
класс выглядит нормально :
@injectable({scope: BindingScope.SINGLETON})
export class FirebaseService {
Все мои классы служб находятся в src/services
каталоге, поэтому они должны быть зарегистрированы с помощью обратной связи. Или, может быть, моя проблема не имеет ничего общего с внедрением сервисов?
Я пытаюсь понять это в течение нескольких часов. У кого-нибудь есть идея?
Спасибо за вашу помощь!
Оливье
Ответ №1:
У меня та же проблема. Вам нужно импортировать полный путь к этому файлу вместо папки. ПРИМЕР: импорт ServiceA из ‘./ services/ service-a.service’;
Комментарии:
1. Кто-нибудь знает, как это решает проблему? Я предполагаю, что при разрешении метаданных класса где-то используется импортированный путь в качестве ключа…
Ответ №2:
Я решил эту проблему, удалив циклическую зависимость при внедрении службы