NestJS TypeOrmModule 存储库注入似乎无法正常工作
NestJS TypeOrmModule repository injection seems not working properly
我正在尝试将用户存储库注入到 UserService,但似乎没有建立 typeorm 连接。我用谷歌搜索了这个错误,但似乎没有太多资源。
这是错误日志
[Nest] 18226 - 2021. 11. 30. 오후 7:10:19 ERROR [ExceptionHandler]
Nest can't resolve dependencies of the UserRepository (?).
Please make sure that the argument Connection at index [0] is available
in the TypeOrmModule context.
Potential solutions:
- If Connection is a provider, is it part of the current TypeOrmModule?
- If Connection is exported from a separate @Module, is that module imported within TypeOrmModule?
@Module({
imports: [ /* the Module containing Connection */ ]
})
这是代码
user.service.ts
@Injectable()
export class UserService {
constructor(
@InjectRepository(User) private readonly user: Repository<User>,
) {}
...
}
user.module.ts
@Module({
imports: [TypeOrmModule.forFeature([User])],
providers: [UserService],
exports: [UserService],
controllers: [UserController],
})
export class UserModule {}
app.module.ts
@Module({
imports: [
ConfigModule.forRoot({
...
}),
TypeOrmModule.forRoot({
type: 'postgres',
...,
synchronize: process.env.NODE_ENV !== 'prod',
logging:
process.env.NODE_ENV !== 'prod' && process.env.NODE_ENV !== 'test',
entities: [User, Wiki],
}),
MongooseModule.forRoot(process.env.MONGODB_ROOT),
UserModule,
WikiModule,
],
controllers: [],
providers: [],
})
export class AppModule {}
对于正在为这个问题苦苦挣扎的人,只需尝试 TypeOrmModule.forRootAsync()
TypeOrmModule.forRootAsync({
useFactory: () => ({
type: 'postgres',
...,
synchronize: process.env.NODE_ENV !== 'prod',
logging:
process.env.NODE_ENV !== 'prod' && process.env.NODE_ENV !== 'test',
}),
})
我正在尝试将用户存储库注入到 UserService,但似乎没有建立 typeorm 连接。我用谷歌搜索了这个错误,但似乎没有太多资源。
这是错误日志
[Nest] 18226 - 2021. 11. 30. 오후 7:10:19 ERROR [ExceptionHandler]
Nest can't resolve dependencies of the UserRepository (?).
Please make sure that the argument Connection at index [0] is available
in the TypeOrmModule context.
Potential solutions:
- If Connection is a provider, is it part of the current TypeOrmModule?
- If Connection is exported from a separate @Module, is that module imported within TypeOrmModule?
@Module({
imports: [ /* the Module containing Connection */ ]
})
这是代码
user.service.ts
@Injectable()
export class UserService {
constructor(
@InjectRepository(User) private readonly user: Repository<User>,
) {}
...
}
user.module.ts
@Module({
imports: [TypeOrmModule.forFeature([User])],
providers: [UserService],
exports: [UserService],
controllers: [UserController],
})
export class UserModule {}
app.module.ts
@Module({
imports: [
ConfigModule.forRoot({
...
}),
TypeOrmModule.forRoot({
type: 'postgres',
...,
synchronize: process.env.NODE_ENV !== 'prod',
logging:
process.env.NODE_ENV !== 'prod' && process.env.NODE_ENV !== 'test',
entities: [User, Wiki],
}),
MongooseModule.forRoot(process.env.MONGODB_ROOT),
UserModule,
WikiModule,
],
controllers: [],
providers: [],
})
export class AppModule {}
对于正在为这个问题苦苦挣扎的人,只需尝试 TypeOrmModule.forRootAsync()
TypeOrmModule.forRootAsync({
useFactory: () => ({
type: 'postgres',
...,
synchronize: process.env.NODE_ENV !== 'prod',
logging:
process.env.NODE_ENV !== 'prod' && process.env.NODE_ENV !== 'test',
}),
})