好的,所以我对 Meteor.js 有点困惑。我用它创建了一个站点来测试各种概念,它运行良好。删除“不安全”和“自动发布”后,在尝试检索和推送到服务器时会出现多个“拒绝访问”错误。我相信它与以下代码段有关:
Template.posts.posts = function () {
return Posts.find({}, {sort: {time: -1}});
}
我认为它正在尝试直接访问集合,它被允许在启用“不安全”和“自动发布”的情况下进行,但是一旦它们被禁用,它就会被拒绝访问。另一个我认为有问题的部分:
else {
Posts.insert({
user: Meteor.user().profile.name,
post: post.value,
time: Date.now(),
});
我认为同样的事情正在发生:它试图直接访问集合,这是不允许的。
我的问题是,我如何重新考虑它,以便我不需要启用“不安全”和“自动发布”?
谢谢。
编辑
最终的:
/**
* Models
*/
Posts = new Meteor.Collection('posts');
posts = Posts
if (Meteor.isClient) {
Meteor.subscribe('posts');
}
if (Meteor.isServer) {
Meteor.publish('posts', function() {
return posts.find({}, {time:-1, limit: 100});
});
posts.allow({
insert: function (document) {
return true;
},
update: function () {
return false;
},
remove: function () {
return false;
}
});
}