在first problem with JWT_MODULE_OPTION之后,回到我认为自己已解决的老问题。原来,当我“解决”旧问题时,请使用JWT创建新问题。
所以再次无法编译:
嵌套不能解析AuthService的依赖项(?,RoleRepository,JwtService)。请确保在AppModule上下文中索引[0]处的参数可用。 + 25ms
这真的很奇怪,因为这种方式可以在我的另一个项目中工作,并且无法理解我哪里写错了。这是 auth.service.ts :
@Injectable()
export class AuthService {
constructor(
@InjectRepository(User) private readonly userRepo: Repository<User>,
@InjectRepository(Role) private readonly rolesRepo: Repository<Role>,
private readonly jwtService: JwtService,
) { }
它获得了角色和jwtService
,但问题出在User
上,路径正确。这是 app.module.ts :
@Module({
imports: [
TypeOrmModule.forRootAsync({
imports: [ConfigModule, AuthModule],
inject: [ConfigService],
useFactory: async (configService: ConfigService) => ({
type: configService.dbType as any,
host: configService.dbHost,
port: configService.dbPort,
username: configService.dbUsername,
password: configService.dbPassword,
database: configService.dbName,
entities: ['./src/data/entities/*.ts'],
}),
}),
],
controllers: [AppController, AuthController],
providers: [AuthService],
})
export class AppModule { }
控制器和提供程序具有相同的编译错误,并且无法理解错误所在...
答案 0 :(得分:2)
您可能缺少TypeOrmModule.forFeature([User])
导入。通常,所有实体都将导入到专用功能模块中。如果只有一个模块(即AppModule
),则除了forFeature
导入之外,还需要在其中放置forRoot
导入。
@Module({
imports: [
TypeOrmModule.forRootAsync({...}),
TypeOrmModule.forFeature([User, Role]),
],
答案 1 :(得分:0)
全局问题是我尝试两次添加AuthService和AuthController。因此,我从 app.module.ts 中删除了它们,然后从 auth.module.ts 中导出了AuthService: