在DerbyJS中:
如何向“模型”添加事件侦听器,只有服务器端,而不必依赖请求(表达中间件)?
相关问题我发现: How to create server-side application logic on Racer / DerbyJS?
当然我可以写一个快速中间件。但是如果我可以在不必依赖请求的情况下访问它,那么“共享”数据模型会非常方便,而且我不知道如何在不必将特定代码放入共享代码库< / em>的。
我的模型可能是这样的:
{
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);
})
答案 0 :(得分:2)
是的,你可以!! :)
您有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);
...
});