Meteor客户端同步服务器数据库调用

时间:2013-02-20 10:17:16

标签: node.js mongodb meteor

我正在Meteor中构建一个依赖于数据库实时更新的应用程序。 Meteor定义示例的方式是在Template调用下调用数据库。我发现在处理中等大小的数据集时,这变得不切实际。我正在尝试将请求移动到服务器,并将结果传递回客户端。

我在SA上查看了similar questions,但没有立即找到答案。

这是我的服务器端功能:

    Meteor.methods({
    "getTest" : function() {
                   var res = Data.find({}, { sort : { time : -1 }, limit : 10 });
                   var r = res.fetch();
                   return (r);
                }
    });

客户方:

    Template.matches._matches = function() {
        var res= {};
        Meteor.call("getTest", function (error, result) {
            res = result;
        });
        return res;
    }

我尝试过以上代码的变体 - 在回调函数中作为一个示例返回。据我所知,有一个回调使函数异步,所以它不能被调用onload(同步),必须从客户端调用。

我想通过服务器端的所有数据库查询来减轻前端负载。这在Meteor中有可能吗?

由于

1 个答案:

答案 0 :(得分:3)

执行此操作的方法是使用订阅而不是远程方法调用。请参阅文档中的counts-by-room example。因此,对于每个数据库调用,您都有一个仅存在于客户端的集合。然后,服务器使用setunset确定集合中的记录。