2012-11-22 45 views
0

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

+0

你能否提供一些更多的细节?您是否试图通过桌面/ Windows 8应用程序调用移动服务REST API并试图找出该应用程序中的查询参数? –

+0

我不认为这很重要,因为我在谈论服务器脚本,它简而言之就是node.js http://msdn.microsoft.com/en-us/library/jj554226.aspx 对于阅读 事情是在其余api文档 http://msdn.microsoft.com/en-us/library/jj677199.aspx 它声明有查询参数像$ filter,$ select在请求中,但我不知道如何检索这些参数。查询 – imgen

回答

1

与在“读”功能的参数“查询”对象周围黑客攻击(通过使用的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协议的基本上什么

相关问题