Azure移动服务插入替代问题

时间:2014-05-12 14:23:30

标签: node.js azure azure-mobile-services

您好我在“插入”操作中编写了以下代码。

function insert(item, user, request) {

item.createdDate = new Date();
item.updatedDate = new Date();

var node = { id: '', 
 textSize: 20,
 backColor: 'Blue',
 parentId: '' };

console.log('Root bubble initialized with default params: ', node);

request.execute({success:function()
{   
    node.parentId = item.id;

    var nodeTable = tables.getTable('Nodes');

    nodeTable.insert(node);

}});

}

但是我在日志中收到以下错误...

请求'POST / tables / Tree'已超时。这可能是由于脚本无法写入响应,或者无法及时从异步调用返回而导致的。

此外,我在ios客户端应用程序中收到以下错误

Domain = com.Microsoft.WindowsAzureMobileServices.ErrorDomain Code = -1302“错误:请求已超时....

但调试日志显示代码的所有部分都按预期成功执行。

我该如何解决这个问题?

提前致谢...

1 个答案:

答案 0 :(得分:0)

您需要向呼叫者返回响应。一旦覆盖request.execute函数的成功回调,默认行为(返回对调用者的响应)就不再执行了。您可能需要以下代码中的某些内容。

function insert(item, user, request) {

    item.createdDate = new Date();
    item.updatedDate = new Date();

    var node = { id: '', 
        textSize: 20,
        backColor: 'Blue',
        parentId: '' };

    console.log('Root bubble initialized with default params: ', node);

    request.execute( {
        success: function() {   
            node.parentId = item.id;
            var nodeTable = tables.getTable('Nodes');
            nodeTable.insert(node, {
                request.respond(statusCodes.CREATED, item);
            });
        }
    });
}