2012-11-16 40 views
1

我想覆蓋Azure移動服務表上的刪除操作,使其更像是更新,然後是真正的刪除。我有附加的列名爲IsDeleted,我想在執行刪除操作時將其值設置爲true覆蓋Azure移動服務表上的刪除操作

我想通了,那我需要的是:

  • 火我自己的裏面del功能 '更新',
  • 刪除當前request.execute()
  • 準備和自己發送響應

我的del函數應該看起來像這樣:

function del(id, user, request) { 
    // execute update query to set 'isDeleted' - true 

    // return standard response 
    request.respond(); 
} 

正如你所看到的,我錯過了函數的第一部分 - 更新之一。你能幫我寫嗎?我讀了Mobile Services server script reference,但沒有關於在服務器腳本函數內進行額外查詢的信息。

回答

3

會議基本上有兩種方法可以做到這一點 - 使用tables object,並使用mssql object。鏈接指向適當的參考。

使用MSSQL(我沒有嘗試它,你可能需要更新您的SQL語句):

function del(id, user, request) { 
    var sql = 'UPDATE <yourTableName> SET isDeleted = true WHERE id = ?'; 
    mssql.query(sql, [id], { 
     success: function() { 
      request.respond(statusCodes.OK); 
     } 
    }); 
} 

使用表格(同樣,只有在記事本測試):

function del(id, user, request) { 
    var table = tables.getTable('YourTableName'); 
    table.where({ id: id }).read({ 
     success: function(items) { 
      if (items.length === 0) { 
       request.respond(statusCodes.NOT_FOUND); 
      } else { 
       var item = items[0]; 
       item.isDeleted = true; 
       table.update(item, { 
        success: function() { 
         request.respond(statusCodes.OK, item); 
        } 
       }); 
      } 
     } 
    }); 
} 
+0

第二一個作品!謝謝 – MarcinJuraszek