【问题标题】:Getting a response from an Azure insert从 Azure 插入中获取响应
【发布时间】:2014-10-29 23:34:16
【问题描述】:

我继承了连接到 Azure 移动服务的 iOS 应用程序的开发,但我一直无法从插入操作中获得可接受的响应。具体来说,我想从该项目的前一个开发人员创建的自定义 API 脚本中取回插入的对象,或者至少是其 id 字段的值。

我正在使用的自定义 API 脚本的截断版本如下所示:

exports.post = function(request, response) {
    var mssql = request.service.mssql;
    var sql = "INSERT INTO Reservation (<field names>)" +
    " VALUES (<field values>); "
    +"SELECT id FROM Reservation WHERE __updatedAt = (SELECT MAX(__updatedAt) FROM Reservation);"; 

    mssql.query(sql, {
        success: function(results) {

            console.log("after post - results = " + results);

            response.send(statusCodes.OK, results);
        }
    });
};

当我运行 iOS 应用程序并发布一个 Reservation(使用 AFNetworking 类与服务器通信)时,我得到一个带有空数组的响应对象。此外,在我的函数中检查 Azure 日志以查找 console.log 语句的结果,我看到两个结果:“post-results = [object Object]”和“post-results = [object Object]”。

我显然做错了什么,但我不明白是什么。我尝试了许多其他不同的方法,但结果都不尽如人意。对于它的价值,这个类的“get”脚本工作得很好。我想知道是否有人可以帮我把这个“帖子”脚本弄好。

【问题讨论】:

    标签: azure-mobile-services


    【解决方案1】:

    正如您在日志中所指出的,mssql.query 调用的成功回调被调用了两次 - 因为您的查询中有两个语句。当您第一次调用response.send 时,这就是发送回客户端的响应。第一个回调将包含 INSERT 调用的结果,这不是您想要返回的。您应该使用一个标志来指示您收到的结果,并且仅在您想要的结果时返回:

    exports.post = function(request, response) {
        var mssql = request.service.mssql;
        var sql = "INSERT INTO Reservation (<field names>)" +
        " VALUES (<field values>); "
        +"SELECT id FROM Reservation WHERE __updatedAt = (SELECT MAX(__updatedAt) FROM Reservation);"; 
    
        var firstCall = true;
        mssql.query(sql, {
            success: function(results) {
                console.log("after post - results = " + results);
                if (firstCall) {
                    firstCall = false;
                } else {
                    response.send(statusCodes.OK, results);
                }
            }
        });
    };
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-28
      • 1970-01-01
      • 1970-01-01
      • 2020-08-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多