2017-11-21 1 views
1

Image shows the azure table JavaScript를 사용하여 Azure 테이블 저장소에서 최신 레코드를 검색하는 방법은 무엇입니까? 나는이 기사를 보았다 JavaScript를 사용하여 Azure 테이블 저장소에서 최신 레코드를 검색하는 방법은 무엇입니까?

, How to retrieve latest record using RowKey or Timestamp in Azure Table storage

는하지만 난 어떤 제안, Nodejs 서버 측에서 동일하게 구현하려는. 코드 지금까지,

var dt = Date().toLocaleString(); 
     console.log("Got response: " + dt); 

     var entGen = azure.TableUtilities.entityGenerator; 
     var task = { 
     PartitionKey: entGen.String('ConfigData'), 
     RowKey: dt, 
     DeviceId: entGen.String(req.body.devId), 
     }; 

     // Insert the entity to the table 
     tableSvc.insertEntity('configurationData', task, function (error, result, response) { 
     if (!error) { 
      // Entity inserted 
      console.log("Added the data in table successfully"); 
     } 
     else{ 
      console.log(error); 
     } 
     }); 

내가 오류가 아래에있어, 사전에

name: 'StorageError', 
    message: 'The \'RowKey\' parameter of value \'11/21/2017, 8:17:24 AM\' is out of range.\nRequestId:687de370-0002-0055-09a1-62d5e1000000\nTime:2017-11-21T08:17:25.6350503Z', 
    code: 'OutOfRangeInput', 
    statusCode: 400, 
    requestId: '687de370-0002-0055-09a1-62d5e1000000' } 

감사합니다.

+0

당신이 보여줄 수 어떻게 데이터가 어떻게 보이나요? 이미 어떤 방법을 시도해 봤습니까? 어떤 문제가 있습니까? – Adriano

+0

질문에서 언급 한 기사를 따르려고했습니다. 문제는 C#에 있는데 문제는 동일합니다. javascript –

+0

데이터의 모양은 어떻게됩니까? 목록, 배열, 사전, JSON 파일입니까? – Adriano

답변

1

먼저 오류가 발생하는 이유는 RowKey 값에 / 문자가 포함되어 있기 때문입니다. 허용되지 않습니다. PartitionKeyRowKey 속성의 유효한 값은 https://docs.microsoft.com/en-us/rest/api/storageservices/understanding-the-table-service-data-model 링크를 참조하십시오.

최근 레코드를 가져 오는 방법에 대한 다른 질문이 있습니다. 질문에 연결된 대답에서 언급 한 것처럼 엔터티가 appended 대신 prepended이되도록해야합니다. 당신이 무엇을 할 수 있는지 이렇게하려면 현재 시간에 대한 Epoch seconds (당신이 현재 RowKey로 설정하는 값을 얻을 수 및 최대 신기원 초에서 그 값을 뺄 수 있습니다. 예를 들어

,

var maxDate = new Date("9999-12-31"); 
var rowKeyValue = (maxDate.getTime() - (new Date()).getTime()).toString(); 
var task = { 
PartitionKey: entGen.String('ConfigData'), 
RowKey: rowKeyValue, 
DeviceId: entGen.String(req.body.devId), 
}; 
+0

감사합니다 Gaurav, 정말 도움이되고 제 신청서에 잘 작동합니다. –

관련 문제