我正在重新设计NodeJS应用程序,因为我想使用Rich Domain Model概念。目前,我正在使用Anemic域模型,并且扩展性不好,我到处都看到“ ifs”。
我已经阅读了许多博客文章和与DDD相关的博客,但是有些事情我根本无法理解...我们如何正确处理持久性。
首先,我想描述一下我定义的图层及其用途:
持续性模型
领域模型
数据访问对象(DAO)
服务层
客户层
现在,当我实现客户端层时,混乱就开始了。
假设我正在实现一个新的REST API:
POST: .../api/CreateOrderForUser/
{
items: [{
productId: 1,
quantity: 4
},{
productId: 3,
quantity: 2
}]
}
Run Code Online (Sandbox Code Playgroud)
在我的处理程序函数上,我将有类似以下内容:
function(oReq){
var oRequestBody = oReq.body;
var oCurrentUser = oReq.user; //This is already a Domain Object
var aOrderItems = oRequestBody.map(function(mOrderData){
return new OrderItem(mOrderData); //Constructor sets the properties internally
});
var oOrder = new Order({
items: aOrderItems
});
oCurrentUser.addOrder(oOrder); …Run Code Online (Sandbox Code Playgroud) architecture domain-driven-design node.js sequelize.js rich-domain-model