簡體   English   中英

DerbyJS 0.6中的服務器端模型更改事件

[英]Server-side model change event in DerbyJS 0.6

在DerbyJS中:

如何將事件偵聽器添加到“模型”(僅服務器端),而不必依賴請求(表示中間件)?

我發現了相關的問題: 如何在Racer / DerbyJS上創建服務器端應用程序邏輯?

我當然可以寫一個快速的中間件。 但是,如果我無需依賴請求就可以訪問它,那么“共享”數據模型將非常方便,而且我不知道如何在不必將特定代碼放入共享代碼庫的情況下進行操作

用例:電子商務軟件的訂單處理

我的模型可能是這樣的:

{
  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包括服務器端腳本,如果使用過yobyby-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);
   ...
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM