jwt服务this.jwtService.sign不是函数

时间:2020-07-03 20:31:28

标签: typescript jwt nestjs nestjs-passport nestjs-jwt

在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),
    };
  }
}

在运行时对其进行编译后,会出现以下错误:

[嵌套] 12998-2020年7月3日,晚上9:22:20 [ExceptionsHandler] this.jwtService.sign不是+ 213303ms函数

以下是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 个答案:

答案 0 :(得分:0)

在Authservice构造函数中出现的问题应该是:

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