DDD + node.js:域逻辑去哪里

我正在尝试使用es6将DDD引入到node.js应用程序中。 我正在为我的数据访问层使用mongoose。 我注意到,mongoose有一个与模型模式绑定的“.methods”属性。 就向实体添加业务逻辑而言,这是否是添加业务逻辑的理想场所,还是应该考虑创build另一个对象,该对象拥有镜像模型模式对象的业务逻辑,并将数据从一个数据复制到另一个数据? 如果我正在使用sequalize,那么这里的首选方法是什么?

我不认为这确实是一个明确的答案,但我会给你一些意见。

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

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