无法从Azure MobileServiceClient(Node.js)检索超过50条记录

时间:2016-07-18 16:09:13

标签: angularjs node.js apache cordova azure

所以我正在构建一个基于angularjs的Apache Cordova应用程序(Android),并使用WindowsAzure MobileServiceClient库从我在SQL数据库中创建的Easy Table中检索数据。

这个有效!直到我想要检索超过50条记录。 所以我把.take(100)添加到我的表中。还有50条记录.. 然后我想,也许take函数根本不起作用,所以我把数量改为5,我只得到5条记录。所以take函数有点工作,但不超过50条记录。

由于它是node.js后端,如何增加pagesize?

这是我目前的代码:

msc.tables.pokemonType = null;
msc.tables.pokemon = null;

msc.init = function () {
    console.log('MobileServiceClient initializing...');

    var mobileServiceClient = new WindowsAzure.MobileServiceClient("https://blablablabla");

    msc.tables.pokemonType = mobileServiceClient.getTable('PokemonType');
    msc.tables.pokemon = mobileServiceClient.getTable('Pokemon');

    console.log('MobileServiceClient initialized!');
}


msc.getAllPokemonTypes = function() {
    console.log('getAllPokemonTypes - called');
    return msc.tables.pokemonType.read().then(function (pokemonTypes) {
        console.log('getAllPokemonTypes - done');
        return pokemonTypes;
    }, msc.handleError);
}

msc.getAllPokemons = function () {
    console.log('getAllPokemons - called');
    return msc.tables.pokemon.take(100).read().then(function (pokemons) {
        console.log('getAllPokemons - done');
        return pokemons;
    }, msc.handleError);
}

1 个答案:

答案 0 :(得分:1)

根据node.js中移动应用的表格操作的源代码,read operation最终会收到context.query这是queryjs个对象,其中包含take()个函数这可以限制返回到指定数量的项目数。

此外,take()功能包含在移动应用服务器sdk中,因此它不适用于您的客户端代码。

您可以对Easy Table脚本E.G。

进行一些修改
table.read(function (context) {
    context.query.take(100);
    return context.execute();
});