在我遇到这个问题之前,我以为我理解了Meteor中的pub / sub。
假设您有许多博客条目供公众使用,用户导航到/:blogId。
您使用类似
的内容Blogs.findOne(FlowRouter.getParam('blogId'));
目前,在服务器端,我正在发布所有博客条目。
Meteor.publish("blogs", function () {
return Blogs.find({});
});
我猜我应该只发布请求的博客条目:
Meteor.publish("blogs", function (_id) {
return Blogs.find(_id);
});
这里的最佳做法是什么?
答案 0 :(得分:0)
你的问题完全正确:
Meteor.publish("oneBlog", function (_id) {
return Blogs.find(_id); // must return a *cursor* or array of cursors, not an object
});
Meteor.publish("allBlogs", function () {
return Blogs.find();
});
从客户端根据路由参数订阅oneBlog
:
Meteor.subscribe("oneBlog", FlowRouter.getParam('blogId'));
答案 1 :(得分:-1)
您可以为特定路线制作另一个出版物(只返回一个)。