DerbyJS 0.6 中的服务器端模型更改事件
Server-side model change event in DerbyJS 0.6
在 DerbyJS 中:
如何仅在服务器端向 "The Model" 添加事件侦听器,而不必依赖请求(快速中间件)?
我发现的相关问题:
How to create server-side application logic on Racer / DerbyJS?
我当然可以写一个express中间件。但是 "shared" 数据模型会非常方便,如果我可以访问它而不必依赖请求,我不知道如何在不必将特定代码放入 共享代码库。
用例:电子商务软件的订单处理
我的模型可能是这样的:
{
orders: [ {
id: '1',
products: [ ... ],
user: [ ... ],
token: 'stripe credit card token I get from Client here'
}, {
...
} ]
}
这样客户可以下新订单做
model.at('orders').add(myOrder);
并且服务器可以通过侦听 'insert'
事件来处理它:
model.on('insert', 'orders', function(captures, index, newOrders) {
newOrders.forEach(processOrder);
})
是的,你可以!! :)
您有 2 个选择。
选项 1)
使用 app.serverUse 包含服务器端脚本,或者如果您使用过 yo derby-generator,则使用 store.js。你可以:
var model = dbStore.createModel();
model.subscribe("orders", function(){
model.on("insert", "orders.**", function() {
...
});
});
选项 2)
使用https://github.com/derbyparty/derby-hook
dbStore.hook('create', 'orders', function(id, doc, session, backend) {
var model = dbStore.createModel();
var $order = model.at('orders.'+ id);
...
});
在 DerbyJS 中:
如何仅在服务器端向 "The Model" 添加事件侦听器,而不必依赖请求(快速中间件)?
我发现的相关问题: How to create server-side application logic on Racer / DerbyJS?
我当然可以写一个express中间件。但是 "shared" 数据模型会非常方便,如果我可以访问它而不必依赖请求,我不知道如何在不必将特定代码放入 共享代码库。
用例:电子商务软件的订单处理
我的模型可能是这样的:
{
orders: [ {
id: '1',
products: [ ... ],
user: [ ... ],
token: 'stripe credit card token I get from Client here'
}, {
...
} ]
}
这样客户可以下新订单做
model.at('orders').add(myOrder);
并且服务器可以通过侦听 'insert'
事件来处理它:
model.on('insert', 'orders', function(captures, index, newOrders) {
newOrders.forEach(processOrder);
})
是的,你可以!! :)
您有 2 个选择。
选项 1)
使用 app.serverUse 包含服务器端脚本,或者如果您使用过 yo derby-generator,则使用 store.js。你可以:
var model = dbStore.createModel();
model.subscribe("orders", function(){
model.on("insert", "orders.**", function() {
...
});
});
选项 2)
使用https://github.com/derbyparty/derby-hook
dbStore.hook('create', 'orders', function(id, doc, session, backend) {
var model = dbStore.createModel();
var $order = model.at('orders.'+ id);
...
});