我有一个用MeteorJS编写的应用程序,该功能仅适用于已登录的用户,并且Mongo中的所有文档都为每个登录用户都有一个userId字段。 但是,我现在想要添加一个“演示”功能,用户可以在登录页面上点击而不是“登录”“试用演示”按钮。 功能上的主要区别在于,“演示用户”不会在MongoDb数据库中存储任何内容,并且所有数据和操作仅在本地MiniMongo数据库上执行。 有没有简单的方法来实现这个目标?
我知道new Meteor.Collection(null)
它只是本地的,但我在应用程序的全局级别定义了集合,我无法访问Meteor.userId()' or
this.userId`所以它会有检查每个地方使用哪个集合。
答案 0 :(得分:0)
结束以下方法:
我在哪里定义我的集合(服务器和客户端之间的共享代码)我定义了两个集合:
var Docs = new Meteor.Collection("docs");
var DocsOffline = new MeteorCollection(null);
在每个流星方法中没有我使用以下变量访问集合:
let docsSource = Meteor.userId() ? Docs : DocsOffline;
然后对docsSource
在getMeteorData
mixin方法的客户端上,我有类似的方法来使数据可用(我使用ReactJS)