9

我是一名传统的 C# 开发人员,过去我将 MVC 与分层架构一起使用。我现在用 NodeJs/Mongoose 编写了一个应用程序,我对 Mongoose 的工作方式有点困惑。

在过去,我会将我的模型定义为简单的 POCO,将它们通过层传递,我的存储库将完成我所有的数据访问。

使用 Mongoose,数据访问发生在模型本身上。您可以调用 .save(),声明静态和实例方法,例如 myModel.findAllByX() 等。虽然这对我来说是一种偏离,但我可以看到一些赞成和反对的观点。

我在这里错过了什么吗?是否有任何好的实践技巧,或者我应该保持简单,只在我的 Mongoose 模型上声明所有内容,而不是将其传递给另一层?

4

1 回答 1

9

由于 mongoose 已经是数据库层的抽象,因此您应该完全按照您的怀疑去做,并直接在 mongoose 中构建模型抽象。

这就是staticmethod系统在 Mongoose 模型上的用途——这也是钩子系统的用途(预初始化、保存等)。

在大型应用程序中,我们通常最终完全通过自定义静态和方法访问我们的猫鼬模型......从这个意义上说,您可以认为这些静态和方法实际上构成了您在 MVC 中谈论的“单独层”。

于 2013-01-28T01:48:08.057 回答