草庐IT

Windows Azure Node.js SDK

coder 2024-06-10 原文

我想知道如何使用 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 处理连续 token 的代码示例:

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/

有关Windows Azure Node.js SDK的更多相关文章

  1. javascript - 自定义 Facebook 登录按钮 *使用 JSSDK 而不是 FBML* - 2

    我正在使用FacebookJavascriptSDK通过以下标记创建登录按钮。LoginwithFacebook这很好用。但是,我想通过扩大它来稍微定制一下。我知道在XFBML标记中使用不同的值(例如size=)是可能的。通过查看生成的html,我找到了需要应用的正确FBcss类,因此我总是可以使用一些JQuery魔法来破解它。我更愿意设置适当的data-*属性并让FB-JSSDK自行完成。我已经尝试过data-size=但完全行不通 最佳答案 我刚试过data-size="large",它奏效了。风采fb_button_large

  2. 记录--微信调用jssdk--Invalid Signature, updateAppMessageShareData: denied等问题 - 2

    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助最近在做安卓内嵌入H5活动页拉新活动,遇到的棘手问题记录下,一是为了日后遇到同样问题好回顾,二是希望能帮到有同样问题的兄弟。废话不多说,先从最棘手的问题直接开始:一、InvalidSignature1.因为项目内是Vue中的hash模式,所以遇到这个问题时,一直怀疑hash模式是不是不可以。——其实可以,hash和history都可以;记得encodeURIComponent(location.href.split('#')[0])2.按照官方文档的步骤去排查错误:(1)确认签名算法正确,可用http://mp.weixin.qq.c

  3. 记录--微信调用jssdk--Invalid Signature, updateAppMessageShareData: denied等问题 - 2

    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助最近在做安卓内嵌入H5活动页拉新活动,遇到的棘手问题记录下,一是为了日后遇到同样问题好回顾,二是希望能帮到有同样问题的兄弟。废话不多说,先从最棘手的问题直接开始:一、InvalidSignature1.因为项目内是Vue中的hash模式,所以遇到这个问题时,一直怀疑hash模式是不是不可以。——其实可以,hash和history都可以;记得encodeURIComponent(location.href.split('#')[0])2.按照官方文档的步骤去排查错误:(1)确认签名算法正确,可用http://mp.weixin.qq.c

  4. 记录--微信调用jssdk全流程详解 - 2

    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助微信调用jssdk全流程详解系统框架使用的是前后端分离,前端使用vant,后端是springboot一、网页授权的时序图二、公众号配置1.绑定域名登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”。也就是这样:点击设置之后,弹出这样一个输入框,输入服务器所在的域名:2:引入js文件直接在你的页面里引入js文件就行三、前端方法1.初始化方法,从后台获取基本的参数前端进入需要扫一扫功能的页面时候,在mounted方法里面,执行微信配置getWxConfig(),此方法主要是获取jssdk所需要的参数,先检查本地缓存

  5. 记录--微信调用jssdk全流程详解 - 2

    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助微信调用jssdk全流程详解系统框架使用的是前后端分离,前端使用vant,后端是springboot一、网页授权的时序图二、公众号配置1.绑定域名登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”。也就是这样:点击设置之后,弹出这样一个输入框,输入服务器所在的域名:2:引入js文件直接在你的页面里引入js文件就行三、前端方法1.初始化方法,从后台获取基本的参数前端进入需要扫一扫功能的页面时候,在mounted方法里面,执行微信配置getWxConfig(),此方法主要是获取jssdk所需要的参数,先检查本地缓存

随机推荐