gpt4 book ai didi

Windows Azure Node.js SDK

转载 作者:可可西里 更新时间:2023-11-01 10:07:59 27 4
gpt4 key购买 nike

我想知道如何使用 Windows Azure Node.js SDK 获取延续 token ?例如,我现在使用 SDK 来从表中检索数据:

var tableService = azure.createTableService();

tableService.getTable('UsersUserFacebookActions', function (error) {
if (error === null) {
var query = azure.TableQuery
.select()
.from('UsersUserFacebookActions')
.where('PartitionKey eq ?', userID)
.and('Kind eq ?', 'User')
.and('Deleted eq ?', 'false');

tableService.queryEntities(query, function (error, userEntities) {
if (error === null && userEntities.length > 0) {
// check to see if access token needs extending
extendAccessToken(userEntities[0], function (user) {
callback({
PartitionKey: user.PartitionKey,
RowKey: user.RowKey,
Kind: user.Kind,
EmailAddress: user.EmailAddress,
AccessToken: user.AccessToken,
TokenExpiration: user.TokenExpiration,
JoinDate: user.JoinDate,
ChannelCount: user.ChannelCount,
FollowCount: user.FollowCount,
ChannelCountString: accounting.formatNumber(user.ChannelCount),
FollowCountString: accounting.formatNumber(user.FollowCount),
Deleted: user.Deleted,
DeleteDate: user.DeleteDate
});
});
}
else callback();
});
}
else callback();
});

但是,我已经搜索了示例和文档,包括此站点:

https://www.windowsazure.com/en-us/develop/nodejs/

但没有遇到任何提及延续 token 的内容。

如有任何帮助或建议,我们将不胜感激。

最佳答案

根据源代码(第 481 行),如果存在继续标记,则“queryEntitiesResultContinuation”属性将添加到您的结果中:

https://github.com/WindowsAzure/azure-sdk-for-node/blob/master/lib/services/table/tableservice.js

它有一个名为“getNextPage”的函数,它需要回调:

https://github.com/WindowsAzure/azure-sdk-for-node/blob/master/lib/services/table/models/queryentitiesresultcontinuation.js

您可能应该创建一个单独的函数来处理查询结果。此函数将迭代实体,然后检查是否设置了“queryEntitiesResultContinuation”。如果是这样,请调用该函数,并将新函数作为回调传递。

我还没有实际尝试过,也找不到任何代码示例!

更新

以下是使用 Node 处理延续标记的代码示例:

var tableService = require("azure").createTableService();

function queryWithContinuation(query, cb) {
tableService.queryEntities(query, function(error, entities, continuationToken){
if (continuationToken.nextPartitionKey) {
nextPage(entities, continuationToken, cb);
} else {
cb(entities);
}
});
}

// used to recursively retrieve the results
function nextPage(entities, continuationToken, cb){
continuationToken.getNextPage(function(error, results, newContinuationToken){
entities = entities.concat(results);
if (newContinuationToken.nextPartitionKey){
nextPage(entities, newContinuationToken, cb);
} else {
cb(entities);
}
});
}

// example usage
var query = azure.TableQuery.select().from('really-big-table');
queryWithContinuation(query, function(results){
console.log(results);
});

关于Windows Azure Node.js SDK,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10648520/

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