我有一个在Meteor中运行的基本帖子流,它来自Posts集合。模板由到达集合中的以下模板帮助器提供:

    Template.postStream.helpers({
        /* Supplies posts collection to the client
        *  view. */
        postsStream: function(){
            var loggedUser = Meteor.user();
            return Posts.find({ userID: loggedUser._id });
        },

    });

助手似乎一切正常,并且帖子按预期方式显示。但是,我在控制台中收到这个模糊的错误,无法解决该错误:Exception in template helper: postsStream@http://localhost:3000/client/views/stream/post-stream.js?37c902af708ff817888efc24c4e45f352cfb6884:6:41
字符6:41对应于loggedUser._id字符串的中途。这是怎么回事?

最佳答案

首次运行应用程序时,由于登录恢复过程需要几毫秒的时间,因此将使用返回Meteor.user()null执行帮助程序。

您需要设置防护措施以防止访问loggedUser._id,否则您将获得异常。

return Posts.find({ userID: loggedUser && loggedUser._id });

09-25 11:51