ios - 如何在 Azure 移动服务中从 SQL 切换到表存储?

标签 ios sql-server node.js azure

我已经注册了 Azure 的免费试用一个月,并且创建了移动服务。我使用的是 iOS,因此我下载了适用于 iOS 的 Todo 应用模型。

我现在尝试在后端使用表存储而不是 MSSQL 存储;我在这里找到了有关使用表存储的说明:http://azure.microsoft.com/en-us/documentation/articles/storage-nodejs-how-to-use-table-storage/

但是,我的应用程序仍在 MSSQL 存储中存储待办事项。有人告诉我,我不需要在客户端中执行任何操作即可进行切换,因此我认为我需要做的所有事情都必须在 node.js 脚本中完成。但我显然错过了一些东西。

令我困惑的一件事是,在我下载为 Todo 应用程序生成的 node.js 脚本后,我没有看到其中任何似乎与 MSSQL 数据库显式通信的内容。

如有任何指点,我们将不胜感激。

编辑: 这是我的 todoitem.insert.js:

var azure = require('azure-storage');
var tableSvc = azure.createTableService();

function insert(item, user, request) {
    // request.execute();
    console.log('Request received');
    console.log(request);
    var entGen = azure.TableUtilities.entityGenerator;
    var task = {
        PartitionKey: entGen.String('learningazure'),
        RowKey: entGen.String('1'),
        description: entGen.String('add something to TS'),
        dueDate: entGen.DateTime(new Date(Date.UTC(2014, 11, 5))),
    };
    tableSvc.insertEntity('codedelphi',task, {echoContent: true}, function (error, result, response) {
        if(!error){
            // Entity inserted
            console.log('No error on table insert: task created.');
            request.respond(statusCodes.SUCCESS, 'OK.');
        } else {
            console.log('Houston, we have a problem.  Entity not added to table.');
            console.log(error);
        }
    });
    console.log(JSON.stringify(item, null, 4));
}


tableSvc.createTableIfNotExists('codedelphi', function(error, result, response){
    if(!error){
        // Table exists or created
        console.log('No error, table should exist');
    } else {
        console.log('We have a problem.');
        console.log(error);
    }
});

最佳答案

移动服务具有内置功能,可以为您处理与 SQL 数据库的对话。当您的脚本调用“request.execute()”时,它会触发对 SQL 数据库运行的任何请求(插入、更新、删除、选择)。与 Table Storage 而不是 SQL 对话需要您编辑这些脚本以明确与 Table Storage 对话(即执行您的插入、更新、删除和读取)。今天没有神奇的开关可以将您的“request.execute”从与 SQL 对话更改为与表存储对话。如果您已经编辑了脚本以与 Table Storage 通信但它不起作用/您仍然看到存储在 SQL 数据库中的数据,我怀疑您仍然在脚本中调用“request.execute”,或者您没有不要将它们推送到您的移动服务(如果您在本地将它们拉下来,然后需要将它们推送回您的服务)。如果您已完成上述所有操作,请使用有问题的 Node.js 脚本更新您的问题,以便我们可以看到它。

关于ios - 如何在 Azure 移动服务中从 SQL 切换到表存储?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26837536/

相关文章:

ios - 如何为使用 apache tomcat 服务器服务的 APPLE APP SITE ASSOCIATION 设置 MIME 类型?

ios - XCTestCase 禁用快照可访问性层次结构

sql-server - 是否可能以及如何使用 Entity Framework Core 创建触发器

sql-server - 我在 Microsoft Visio 中有一个数据库图表,如何将它导入到 Sql Server 2005 中?

node.js - Mongoose 删除后事件不会触发

ios - 如果我强制用户更新到 Appstore 上可用的更新版本,AppStore 会拒绝我的申请吗

iphone - Facebook iOS SDK 3.5 模态提要对话框在 iPhone 中加载为空

SQL Server - 有没有办法在没有备份的情况下恢复损坏的数据库?

javascript - Gulp 缩小任务 - 类型错误 : undefined is not a function

javascript - 如何检测脚本是在浏览器中还是在 Node.js 中运行?