我之前发布了这个(Shared Collection Between Client and Server Meteor),我不确定它已经完全解决但我相信还有另一个问题出现了。
在我的console.log(Streams.find().fetch());
文件中执行client.js
时,结果为[]
。但是,当我使用meteor mongo
检查数据库(db.Streams.find().forEach(printjson)
)时,会显示三个不同的对象。
发生了什么事?
在lib/streams.js
:
Streams = new Meteor.Collection("streams");
在server/server.js
:
Meteor.publish("streams", function () {
return Streams.find();
});
在client/client.js
:
if(Meteor.isClient){
Meteor.subscribe("streams");
Template.body.helpers ({
streams: function() {
console.log(Streams.find().fetch());
return Streams.find();
}
});
}
答案 0 :(得分:1)
这是基于链接问题(Shared Collection Between Client and Server Meteor)的猜测。在该问题中,您将集合称为streams
:
Streams = new Meteor.Collection("streams");
但是在这个问题中你正在使用Streams
:
db.Streams.find().forEach(printjson) // Note the capital S in Streams
所以我会说这可能是区分大小写的事情,请尝试:
Streams = new Mongo.Collection("Streams");
这将正确匹配mongo集合的名称。同时将Meteor.Collection
更改为更新的Mongo.Collection
。