我是一个node.js的新手,来自.net背景。我想使用一些我在c#. net中使用的设计模式。然而,由于C#和JavaScript之间面向对象的本质差异,我遇到了一些复杂的问题。
特别是,我想实现存储库模式,但还没有找到很多用node实现的例子。JavaScript和mongoose的设置方式让我有点难以理解这一点。
我参考了下面的一个例子https://github.com/iainjmitchell/mongorepositiory的URL,我可能是错的,但我不明白这个例子允许你传递回调,允许你的代码处理数据库调用后可能出现的任何错误,而不是通常使用mongoose。
2条答案
按热度按时间9udxz4iz1#
我将解释CRUD操作的两个功能,即创造和阅读,你会有休息的想法。我们将拥有以下图层:
让我们首先使用mongoose模式建立我们的模型。这是在test.model.js中。
我不会解释控制器如何请求服务层来发布或接收数据。它只是从服务层调用一个方法。因此,在服务层内部,例如test.service.js。我们将请求像下面这样的存储库层。提供存储库和模型的路径作为文件夹结构。
现在,我们将创建一个存储库,以便每个其他服务都可以调用此存储库以实现CRUD功能。这将有助于减少样板代码。
就这样。我已经尽可能简单地解释了。您可能需要配置其他设置,如连接到数据库。但是如果你能做到这一点,你就可以向存储库添加其他功能。
hof1towb2#
几个月前,我自己也问过同样的问题,经过一些研究和努力,我创建了
monguito
,一个轻量级的、类型安全的MongoDB抽象仓库实现,用于Node.js。此外,
monguito
是一个开源的Mongoose ODM Package 器,具有几个很酷的内置特性,包括在NestJS应用程序中的轻松集成,polymorphic data model handling support和可选的审计数据支持。快来看看here!