2012-11-22 44 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協議的基本上什麼

相關問題