MeteorJS - 仅针对登录用户与MongoDb同步

时间:2016-01-01 15:31:39

标签: meteor

我有一个用MeteorJS编写的应用程序,该功能仅适用于已登录的用户,并且Mongo中的所有文档都为每个登录用户都有一个userId字段。 但是,我现在想要添加一个“演示”功能,用户可以在登录页面上点击而不是“登录”“试用演示”按钮。 功能上的主要区别在于,“演示用户”不会在MongoDb数据库中存储任何内容,并且所有数据和操作仅在本地MiniMongo数据库上执行。 有没有简单的方法来实现这个目标?

我知道new Meteor.Collection(null)它只是本地的,但我在应用程序的全局级别定义了集合,我无法访问Meteor.userId()' or this.userId`所以它会有检查每个地方使用哪个集合。

1 个答案:

答案 0 :(得分:0)

结束以下方法:

我在哪里定义我的集合(服务器和客户端之间的共享代码)我定义了两个集合:

var Docs = new Meteor.Collection("docs");
var DocsOffline = new MeteorCollection(null);

在每个流星方法中没有我使用以下变量访问集合:

let docsSource = Meteor.userId() ? Docs : DocsOffline;

然后对docsSource

进行操作

getMeteorData mixin方法的客户端上,我有类似的方法来使数据可用(我使用ReactJS)