【发布时间】:2022-01-07 01:41:23
【问题描述】:
我正在尝试将用户存储库注入到 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 {}
【问题讨论】:
-
你是否安装了typeorm模块的所有依赖:
npm install --save @nestjs/typeorm typeorm pg? -
是的,一切都已安装。其版本分别为:8.0.2、0.2.41、8.7.1
-
向我们展示所有出现的
UserRepository。看起来您已将其添加到providers数组中,但您不应该这样做 -
UserRepository 仅出现在我上面发布的 user.service.ts 中。 UserService 是唯一注入 UserRepository 的地方。而 TypeOrmModule.forFeature 仅用于嵌套模块中的导入数组。
标签: typescript nestjs typeorm