我正在与Matthew Yee-King博士一起构建一个即时消息应用程序作为Coursera responsive web development course的一部分。该项目是here;我已经链接到后代的特定提交。
我有一个包含Chats
objects的集合Chat
。我正在向客户发布。
autopublish
和insecure
个软件包已被删除,因此我使用the following从服务器向客户发布集合:
Meteor.publish("chats", function(){
return Chats.find({$or: [{user1: Meteor.userId},
{user2: Meteor.userId}]});
});
客户使用the following订阅该集合:
Meteor.subscribe("chats");
当我通过Chats
meteor mongo
访问服务器上的db.chats.findOne()
对象时,我得到一个带有ID的对象。
当我使用Chats.findOne()
在客户端(Chrome 47)控制台上访问它时,我得到一个具有相同属性值的对象,_id
除外,每次调用时都不同命令!
这里有什么问题?我应该得到与服务器相同的_id
,对吗?
答案 0 :(得分:0)
错误发生在publish function:
Meteor.userId()
首先,Meteor.userId()
是一个函数。其次,文档指出this.userId
在发布函数中除之外的任何地方都可用。
而是发布功能中的 for (j = 0; j < slots + 2; j++) {
("%d", &guess[j]);
}
should be used。