5

さて、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;
        }

    });

}
4

1 に答える 1