Mobile 如何在服务器脚本中检索查询参数

Mobile 如何在服务器脚本中检索查询参数,mobile,azure,Mobile,Azure,我正在使用Windows Azure移动服务为我的应用程序构建后端。对于服务器脚本的读取操作,现在我想检索查询参数,如脚本中的$filter、$select等。有什么想法吗?在“read”函数参数中的“query”对象(通过使用console.log)进行黑客攻击后,我终于找到了解决方案: function isObject(variable) { return variable !== null && variable !== undefined &a

我正在使用Windows Azure移动服务为我的应用程序构建后端。对于服务器脚本的读取操作,现在我想检索查询参数,如脚本中的$filter、$select等。有什么想法吗?

在“read”函数参数中的“query”对象(通过使用console.log)进行黑客攻击后,我终于找到了解决方案:

function isObject(variable) {
    return variable !== null && 
        variable !== undefined && 
        typeof variable === 'object';
}

// Find all the member-value pairs from the expression object
function findMemberValuePairsFromExpression (expr, ret) {
    if (!isObject(expr)) {
        return null;
    }
    ret = ret || {};
    for (var name in expr) {
        if (expr.hasOwnProperty(name)) {
            var prop = expr[name];
            if (name === 'parent') { // Ignore parent property since it's added by us
                continue;
            }
            else if (name === 'left') { // member expression are in the left subtree
                if (isObject(prop)) {
                    prop.parent = expr; // Remember the parent
                    findMemberValuePairsFromExpression(prop, ret);
                }
            }
            else if (name === 'member') {
                // Found a member expression, find the value expression 
                // by the knowledge of the structure of the expression
                var value = expr.parent.right.value;
                ret[prop] = value;
            }
        }
    }

    if (expr.parent) {
        // Remove the added parent property
        delete expr.parent;
    }

    return ret;
}

// Get the filters component from query object and 
// find the member-value pairs in it
function findMemberValuePairsFromQuery (query) {
    var filters = query.getComponents().filters;
    return findMemberValuePairsFromExpression(filters);
}

function read (query, user, request) {
    request.execute();
}
请记住,这种方法在很大程度上依赖于查询对象的内部结构,因此将来可能会中断


query.getComponents()还返回查询的其他部分,如“选择”、“跳过”、“顶部”等。基本上是oData协议的任何部分

您能提供更多详细信息吗?您是否试图通过桌面/Windows 8应用程序调用移动服务REST API,并试图找出该应用程序中的查询参数?我认为这并不重要,因为我谈论的是服务器脚本,即node.js,简而言之,对于阅读来说,重要的是在REST API文档中,它声明了如下查询参数$filter,$select在请求中,但我不知道如何检索这些参数。询问