大家好,我是利奥。最近开发了一个node.js版本的CQRS框架。开发流程如下,请各位批评指正。这个版本成熟后会发布。
我们用 cqrs -c myapp 创建一个开发目录,自动会创建如下目录
aggres
entites
repositories
factories
eventHandles
还有 commands / commandHandles / queries / queryHandles 目录,这四个目录我们先不加入内容
我们先开发 aggres/Product.js 文件
aggres/Product.js 主要代码如下:
product.changeName = function(name){
// 创建一个事件
var event = new Event('changeName',{name:name});
// 发布事件
this.publish(event);
}
// 当changeName事件产生时会触发这个监听器
product.onchangeName = function(event){
this._name = event.data.name;
console.log('hello cqrs!');
}
<p class="indent">
|
eventHandles/ProductchangeName.js 代码如下:
// 这里有个约定,就是监听器的名字要 aggre name + event name
function ProductchangeName(event){
console.log(event.data.name);
}
<p class="indent">
|
下面是测试启动文件 Test.js
var myproduct = repository.findById(id,function(err,p){
p.changeName('summer sex');
})
<p class="indent">
|
打印结果是:
hello cqrs!
summer sex
[该贴被brighthas于2012-07-27 23:08修改过]
[该贴被brighthas于2012-07-27 23:09修改过]