【问题标题】:NestJS - can't resolve ConfigServiceNestJS - 无法解析 ConfigService
【发布时间】:2020-02-18 17:16:25
【问题描述】:

我正在使用 NestJS jwt 护照来验证用户。我按照文档,这是我的应用程序模块:

import { Module } from '@nestjs/common';
import { UserModule } from './user/user.module';
import { TypeOrmModule } from '@nestjs/typeorm';
import { AuthModule } from './auth/auth.module';
import { ConfigModule } from '@nestjs/config';
import configuration from '../config/configuration';

@Module({
  imports: [
      ConfigModule.forRoot({
          load: [configuration],
      }),
      TypeOrmModule.forRoot(),
      UserModule,
      AuthModule,
  ],
})
export class AppModule {}

这是我的身份验证模块:

import { Module } from '@nestjs/common';
import { AuthService } from './auth.service';
import { PassportModule } from '@nestjs/passport';
import { UserModule } from '../user/user.module';
import { LocalStrategy } from './local.strategy';
import { JwtStrategy } from './jwt.strategy';
import { ConfigModule, ConfigService } from '@nestjs/config';
import { JwtModule } from '@nestjs/jwt';
import { AuthController } from './auth.controller';

@Module({
    imports: [
        UserModule,
        PassportModule,
        JwtModule.registerAsync({
            imports: [ConfigModule],
            useFactory: async (configService: ConfigService) => ({
                secret:  configService.get('jwt.secret'),
                signOptions: {
                    expiresIn: configService.get('jwt.expiresIn'),
                },
            }),
            inject: [ConfigService],
        }),
    ],
    providers: [AuthService, LocalStrategy, JwtStrategy],
    exports: [AuthService],
    controllers: [AuthController],
})
export class AuthModule {}

每次我运行 npm run start 时,都会收到以下错误消息:

Nest can't resolve dependencies of the JWT_MODULE_OPTIONS (?). Please make sure that the argument ConfigService at index [0] is available in the JwtModule context.

我已经搜索过这个问题,但仍然无法解决这个问题。有人可以帮助我吗?谢谢。

【问题讨论】:

  • 使用ConfigModule.forRoot({ isGlobal: true }) 使ConfigModule 成为全局
  • 嗨,我在stackoverflow.com/questions/60182039/…@ChauTran 回答了这个问题,答案也是正确的。
  • 为了让大家知道,这个is a logged issue 在 ConfigModule 存储库上。等待卡米尔的回复

标签: nestjs


【解决方案1】:

正如其他人所提到的,一个选项是使用 isGlobal: true 设置将 ConfigModule 设为全局。否则,在 @nestjs/config@0.2.3should be fixed 中,现在应该像文档显示的那样工作。

【讨论】:

    【解决方案2】:

    我为同样的问题奋斗了几个小时,但根据 Chau Tran 的说法,在将 ConfigModuleConfigModule.forRoot({ isGlobal: true }) 设为全局之后,我所有的问题都消失了。 ?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-05
      • 1970-01-01
      • 2020-03-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多