我试图注入用户存储库到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 {}
3条答案
按热度按时间rlcwz9us1#
对于正在努力解决这个问题的人,可以尝试TypeOrmModule.forRootAsync()
toe950272#
解决了谢谢约瑟夫·黄
TypeOrmModule.forRootAsync({ useFactory:()=>({ type:'postgres',...,synchronize:process.env.NODE_ENV!== 'prod',记录:process.env.NODE_ENV!== 'prod' && process.env.NODE_ENV!== 'test',}),})
qyzbxkaa3#
当你添加实体装饰器时,它不会自动添加到你的数据源中。
你总是应该传递实体列表或实体路径到dataSource。
简单的解决方案,当你有一个数据库连接工作。