我正在使用Discover Meteor教程,即使Posts = new Mongo.Collection('posts');
的所有功能都在服务器端Mongo shell上运行,在浏览器控制台上调用Posts函数根本不起作用:
Posts.insert()
ReferenceError: Posts is not defined`
该集合在lib/collections
文件的posts.js
文件夹中声明,如下:
Posts = new Mongo.Collection('posts');
if (Meteor.isServer) {
Meteor.publish('posts', function(){
return Posts.find()});
}
if(Meteor.isClient) {
Meteor.subscribe('posts');
}
`
有任何想法或建议吗?当我在Mongo shell中运行db.posts.insert({title:" postname})时,新帖子会立即在浏览器中异步显示,所以我知道数据库正在运行。 我很早就在教程中,所以我觉得这不应该发生。
答案 0 :(得分:3)
首先(仅针对良好实践),在控制台上运行此
Cd myApp
meteor remove autopublish
现在你需要发布(服务器端),订阅(客户端),所有你的收藏
//server side
Posts = new Mongo.Collection('Posts');
Meteor.publish('Posts', function(){
return Posts.find()
});
/Client side
Posts = new Mongo.Collection('Posts');
Meteor.subscribe('Posts');
希望此作品交配,并不断发现流星