【问题标题】:how to properly implement publish and subscribe in meteor js如何在meteor js中正确实现发布和订阅
【发布时间】:2017-10-12 06:53:20
【问题描述】:

我想知道我的发布和订阅实现是否正确。我是流星js的新手,请帮助我。如果您需要有关我的代码的更多信息,我愿意为您提供其他源代码。我阅读了有关发布和订阅的文档,但我不了解有关它的文档。

import { Mongo } from 'meteor/mongo';
import { Meteor } from 'meteor/meteor';
import { check } from 'meteor/check';

export const Notes = new Mongo.Collection('notes');

if(Meteor.isServer) {
  Meteor.publish('secureData', function() {
    return Notes.find({});
  });
}

if(Meteor.isClient) {
  Meteor.subscribe('secureData');
}

【问题讨论】:

  • 把你的代码放在这里而不是在图像中。
  • 我将您的代码直接添加到帖子中并省略了不必要的行。如果您将代码直接放入您的帖子中,下次您将获得更少的反对票。 :)

标签: javascript meteor publish subscribe


【解决方案1】:

传递给新Mongo.Collection(<string>) 的字符串应该与传递给publishsubscribe 的字符串相同。尝试用“notes”替换“secureData”。

if(Meteor.isServer) {
  Meteor.publish('notes', function() {
    return Notes.find({});
  });
}

if(Meteor.isClient) {
  Meteor.subscribe('notes');
}

如果您还有其他问题,请发布示例,说明您如何在代码中访问此集合。

【讨论】:

  • 感谢您的回复先生,我会立即尝试更改它
  • 太棒了!我很高兴它做到了。
  • 这个答案不正确。您可以随意调用您的出版物。它应该与 MongoDB 集合的名称无关。这个问题并没有真正说明到底出了什么问题,但鉴于发布的原始代码,这只是调用 console.log 时客户端上没有可用数据的问题。
  • 问责制很好,但我通过在我自己的工作项目订阅中复制@migmig 的代码来测试这一点。该项目停止工作。当我在控制台中查询该集合时,它似乎可用,但数据集没有反应,我的模板从未更新。这个测试(我刚刚重复过),除了 migmig 确认这有帮助之外,让我相信我可以在这里站稳脚跟。
  • 我将删除我的第二段关于让一个集合的订阅从另一个集合的数据集中提取,因为它有点偏离主题并且措辞不清楚。如果您能指出使我的论点无效的内容,欢迎您进一步编辑。
猜你喜欢
  • 2018-03-07
  • 1970-01-01
  • 2017-11-30
  • 2016-03-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多