我想覆盖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,但没有关于在服务器脚本函数中进行其他查询的信息。
答案 0 :(得分: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);
}
});
}
}
});
}
答案 1 :(得分:0)
您可能需要查看Node.js driver for SQL Server。
Mobile Services的脚本组件使用node.js.您可能希望查看名为AzureConf
的Javascript, meet cloud会话