NodeJS 如何在NestJS上实现MongoDB的仓库设计模式

bfrts1fy  于 2023-10-17  发布在  Node.js
关注(0)|答案(2)|浏览(107)

我试图弄清楚如何在使用MongoDB和mongoose数据库的NestJS上实现存储库设计模式

5f0d552i

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 {}
whlutmcx

whlutmcx2#

几个月前,我自己也问过同样的问题,经过一些研究和努力,我创建了monguito,一个轻量级的、类型安全的MongoDB抽象仓库实现,用于Node.js。
此外,monguito是一个开源的Mongoose ODM Package 器,具有几个很酷的内置特性,包括在NestJS应用程序中的轻松集成,polymorphic data model handling support和可选的审计数据支持。如需了解更多信息,请访问monguito's GitHub site

相关问题