1

我想覆盖我的 Azure 移动服务表上的删除操作,使其更像更新而不是真正的删除。我有一个名为的附加列IsDeleted,我想将它的值设置true为执行删除操作时的值。

我想通了,我需要的是:

  • 触发我自己的“更新”内部del函数,
  • 删除当前request.execute()
  • 自己准备并发送回复

这意味着我的del功能应该是这样的:

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

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

如您所见,我缺少功能的第一部分 - 更新部分。你能帮我写吗?我阅读了移动服务服务器脚本参考,但没有关于在服务器脚本函数中进行额外查询的信息。

4

2 回答 2

3

基本上有两种方法可以做到这一点 - 使用表对象和使用mssql 对象。链接指向适当的参考。

使用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);
                    }
                });
            }
        }
    });
}
于 2012-11-16T18:45:17.453 回答
0

您可能想要查看用于 SQL Server的Node.js 驱动程序。

移动服务的脚本组件使用 node.js。您可能想查看AzureConf 中称为Javascript 的会话,见云

于 2012-11-16T08:45:37.483 回答