Переопределение операции удаления в таблице 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();
}

Как видите, у меня отсутствует первая часть функции — обновление. Не могли бы вы помочь мне написать его? Я прочитал справочник по сценариям сервера мобильных служб, но там нет информации о выполнение дополнительных запросов внутри функции сценария сервера.


person MarcinJuraszek    schedule 16.11.2012    source источник


Ответы (2)


Это можно сделать двумя способами: с помощью объекта tables. , а также с помощью объекта 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);
                    }
                });
            }
        }
    });
}
person carlosfigueira    schedule 16.11.2012

Существует драйвер Node.js для SQL Server, который вы, возможно, захотите проверить.

Скриптовый компонент мобильных служб использует node.js. Вы можете проверить сеанс из AzureConf под названием Javascript и облако

person cory-fowler    schedule 16.11.2012