我试图弄清楚如何在使用MongoDB和mongoose数据库的NestJS上实现存储库设计模式
5f0d552i1#
存储库可以被注入到服务中,它应该包含在模块内的提供程序数组中。
// user.service.ts @Injectable() export class UserService { constructor(private readonly userRepository: UserRepository) {} async findAll(): Promise<User[]> { return this.userRepository.findAll(); } }
// user.repository.ts @Injectable() export class UserRepository { constructor(@InjectModel(User.name) private userModel: Model<UserDocument>) {} async findAll(): Promise<User[]> { return this.userModel.find().exec(); } }
// user.module.ts @Module({ imports: [ MongooseModule.forFeature([{ name: User.name, schema: UserSchema }]), ], providers: [UserRepository, UserService], exports: [UserService], }) export class UserModule {}
whlutmcx2#
几个月前,我自己也问过同样的问题,经过一些研究和努力,我创建了monguito,一个轻量级的、类型安全的MongoDB抽象仓库实现,用于Node.js。此外,monguito是一个开源的Mongoose ODM Package 器,具有几个很酷的内置特性,包括在NestJS应用程序中的轻松集成,polymorphic data model handling support和可选的审计数据支持。如需了解更多信息,请访问monguito's GitHub site。
monguito
2条答案
按热度按时间5f0d552i1#
存储库可以被注入到服务中,它应该包含在模块内的提供程序数组中。
whlutmcx2#
几个月前,我自己也问过同样的问题,经过一些研究和努力,我创建了
monguito
,一个轻量级的、类型安全的MongoDB抽象仓库实现,用于Node.js。此外,
monguito
是一个开源的Mongoose ODM Package 器,具有几个很酷的内置特性,包括在NestJS应用程序中的轻松集成,polymorphic data model handling support和可选的审计数据支持。如需了解更多信息,请访问monguito's GitHub site。