详解:
发布和订阅是meteor的重要部分。
meteor数据库在服务端有mongo 本地有minimongo,这是moteor重写本地mongo。
推送数据库子集到客户端。
这样呢服务器就不需要再发送html到本地了,而是发送直实的原始数据。
让客户端决定如何处理数据。
不用再等待服务器传回数据,而是立即访问和修改数据。
发布:
数据库的数据会有几百万条,有一些是保密的或敏感的数据。
我们不能简单把数据库镜像到本地。
我们通过发布来实现,条件性的发布数据。
这样本地就无法访问那些私有的数据。
保证只发布当前用户可看到的数据。
发布/订阅就是一个漏斗,从服务器数据过滤数据再发送到本地。
这叫做DDP。
订阅:
现在已经把条件过滤后的数据发送过来了,但我们也不能一下把几百万的数据发送出去。
我们需要一个机制让本地来确定哪些子集需要。
这就是订阅。
订阅的数据会镜像到本地。
可以在订阅时指定参数,返回需要的数据。
如我们的模板需要某条件下的数据,
可以return posts.find({author:'star'});
autopublish:
它是一个简单的起步,把服务器上所有集合都镜像到本地,这样就不必管发布和订阅了。
所以需要Meteor.publish('allpost',function(){
return posts.find()
});
创建发布。
这样本地就只会镜像发布的集合。
发布部分字段:
Meteor.publish('allPosts', function(){
return Posts.find({}, {fields: { date: false }});
});