【问题标题】:Windows azure mobile service scriptWindows azure 移动服务脚本
【发布时间】:2014-02-25 01:02:58
【问题描述】:

我在如何支持来自 Windows Azure 中的移动服务的请求时遇到问题。 问题: 我如何检查我从服务器对客户端的响应是否有任何记录。我有这个,但是没有用

function read(query, user, request) {
if (query.take(recordCount) > 0) {
    request.respond(200, "Exist");
} else {
    request.respond(500, "ERROR");
}

【问题讨论】:

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


    【解决方案1】:

    以下是查看查询结果的示例:

    function read(query, user, request) {
    
        request.execute( {success: function(results) {
            console.log(results);
            request.respond(200, results);
        }, error: function(error) {
            console.log('error: ', error);
            request.respond(500);
        }});
    
    }
    

    在成功块中,您可以检查以确保结果不为空,如果有结果则回复 200,如果没有结果则回复 500。如果您不想执行完整的读取查询,您也可以使用 mssql 模块执行自定义 sql 语句(即 select count(*) from tablename)。

    【讨论】:

    • ,如何查看结果不为空?
    • 结果 !== null && results.length != 0
    • 如果调用了success 处理程序,那么您可以假设结果不为空。
    【解决方案2】:

    除了@Chris 建议的内容之外,您还可以使用includeTotalCount() 函数和take(0)(如果您只关心结果的数量,而不是结果本身),只计算符合条件的项目将在查询中返回:

    function read(query, user, request) {
        query.includeTotalCount(); // tell me how many items there are
        query.take(0);             // but don't bother returning them
        request.execute({
            success: function(results) {
                if (results.totalCount > 0) {
                    request.respond(200, { status: 'Item exists' });
                } else {
                    request.respond(500, { status: 'ERROR' });
                }
            }
        });
    }
    

    或者,如果您真的只想知道是否有任何结果,您甚至可以跳过 includeTotalCount 调用,并通过 take(1) 调用强制响应返回最多 1 个结果:

    function read(query, user, request) {
        query.take(1);             // return at most one item
        request.execute({
            success: function(results) {
                if (results.length > 0) {
                    request.respond(200, { status: 'Item exists' });
                } else {
                    request.respond(500, { status: 'ERROR' });
                }
            }
        });
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-23
      • 2016-09-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多