覆盖Azure移动服务表上的删除操作

时间:2012-11-16 08:24:37

标签: azure azure-mobile-services

我想覆盖Azure Mobile Services表上的删除操作,使其更像是更新然后是真正的删除。我有一个名为IsDeleted的附加列,我想在执行删除操作时将其值设置为true

我想出来,我需要的是:

  • 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,但没有关于在服务器脚本函数中进行其他查询的信息。

2 个答案:

答案 0 :(得分:3)

基本上有两种方法 - 使用tables objectmssql 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);
                    }
                });
            }
        }
    });
}

答案 1 :(得分:0)

您可能需要查看Node.js driver for SQL Server

Mobile Services的脚本组件使用node.js.您可能希望查看名为AzureConf

Javascript, meet cloud会话