gpt4 book ai didi

javascript - 如何使用 JavaScript 从 Azure 表存储中检索最新记录?

转载 作者:行者123 更新时间:2023-11-30 20:58:19 25 4
gpt4 key购买 nike

Image shows the azure table如何使用 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' }

提前致谢。

最佳答案

首先,您收到错误的原因是 RowKey 值包含 / 字符,这是不允许的。有关 PartitionKeyRowKey 属性的有效值,请参阅此链接:https://learn.microsoft.com/en-us/rest/api/storageservices/understanding-the-table-service-data-model .

现在,关于如何检索最新记录的另一个问题,正如您在问题中链接的答案中提到的,您需要做的是确保实体被添加到前缀而不是附加。为此,您可以做的是获取当前时间的 Epoch 秒(您设置为当前 RowKey 的值,并从最大 Epoch 秒中减去该值。

例如,

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),
};

关于javascript - 如何使用 JavaScript 从 Azure 表存储中检索最新记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47405257/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com