node.js - DDD + node.js : Where should domain logic go

标签 node.js mongodb domain-driven-design

我正在尝试使用 es6 将 DDD 引入到 node.js 应用程序中。我正在为我的数据访问层使用 Mongoose 。我注意到 Mongoose 有一个与模型模式相关的“.methods”属性。就向实体添加业务逻辑而言,这是添加业务逻辑的理想位置,还是我应该考虑创建另一个对象来保存反射(reflect)模型架构对象的业务逻辑,并将数据从一个对象复制到另一个对象?如果我使用 sequalize,这里的首选方法是什么?

最佳答案

我不认为这个问题真的有一个明确的答案,但我会给你一些意见。

许多 DDD 相关概念和工具都是围绕 OOP 语言公开的特性构建的(特别是:接口(interface)和 IOC)。在 JavaScript 世界中,事情往往有点不同,尤其是在利用模块系统时。也就是说,这并非不可能,但可能需要做出妥协。

DDD 中更重要的一点是您的模型是“普通的”。它们完全不知道任何持久性机制等,它们只是数据和逻辑。通过使用 Mongoose 定义模型,您几乎失去了它;您的业​​务逻辑被附加到 Mongoose 模式对象。但也许这就是你可以妥协的地方,这在很大程度上取决于你希望对它有多纯粹。现在,您可以按照您的建议进行映射。如果你决定继续这个想法,比如 AutoMapper有帮助。我参与了一个使用来自 cerialize 的 ES7 装饰器的项目为了更简洁的方法(但是,我们没有使用模式)。

关于node.js - DDD + node.js : Where should domain logic go,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40581901/

相关文章:

javascript - 为什么我的架构不在 Mongoose 数组中添加默认值?

javascript - 当 mainWindow 断开外部 HTML 时,Electron 如何加载主菜单

node.js - Nodejs写入文件

javascript - 如何阻止客户端 Socket.io 循环套接字发射?

java - 如何在Java中增加视频观看次数

mongodb - 有什么方法可以在 Azure 中对 MongoDB 进行分析吗?

node.js - 如何在 .ejs View 引擎中打印 cookie

oop - 领域驱动设计现在还有效吗?

.net - 在 DDD 中将另一个模型与 Entity Framework 一起使用有什么好处

六边形架构的 Java 代码示例?