Сервис jwt this.jwtService.sign не является функцией

С помощью этого кода в AuthService:

@Injectable()
AuthService {

  constructor(
    @InjectRepository(UserRepository)
    private jwtService: JwtService
    private userRepository: UserRepository
    ) {
  }

  async login(loginCredentialsDto: LoginCredentialsDto): Promise<{ accessToken: string }> {
    const email = await this.userRepository.validatePassword(loginCredentialsDto);
    const payload: JwtPayLoad = {email};
    return {
        accessToken: this.jwtService.sign(payload),
    };
  }
}

После компиляции во время выполнения я получаю следующую ошибку:

[Nest] 12998 - 03.07.2020, 21:22:20 [Обработчик исключений] this.jwtService.sign не является функцией +213303 мс

Ниже приводится AuthModule:

@Module({
    imports: [
        PassportModule.register({ defaultStrategy: 'jwt' }),
        JwtModule.register({
            secret: 'topSecret51',
            signOptions: {
                expiresIn: 3600,
            }
        }),
        TypeOrmModule.forFeature([UserRepository])],
    controllers: [AuthController],
    providers: [AuthService, JwtStrategy],
    exports: [
        JwtStrategy,
        PassportModule,
    ], }) 
export class AuthModule { }

Есть идеи, как это можно решить?

Я переустановил npm, удалил модули узлов и попытался изменить код. Но все равно не работает.

1 ответ

Проблема была в конструкторе Authservice, должна быть такая:

constructor(
    @InjectRepository(UserRepository)
    private userRepository: UserRepository,
    private jwtService: JwtService) {
}
Другие вопросы по тегам