尝试使用Iron Router访问已部署应用程序的集合时出现Meteor ReferenceError

时间:2014-02-08 11:08:44

标签: meteor referenceerror iron-router

我的应用程序在本地完全正常运行但是,当我部署它时,我在javascript控制台上收到以下错误,在该页面上集合Posts是假设要访问的。

Exception from Deps recompute: ReferenceError: Posts is not defined
at Object.route.data.posts

这是我正在使用的路由器javascript文件,它将帖子传递给模板postsLists,在部署时不会加载。


Router.configure({
          layoutTemplate: 'layout',
          loadingTemplate: 'loading',
          waitOn: function() { console.log('waiting'); return [Meteor.subscribe('posts'), Meteor.subscribe('files')]; }
        });

        Router.map(function(){
            this.route('postPage', {
                path:'/posts/:_id',
                data: function() {return Posts.findOne(this.params._id); }
            });

            this.route('welcome', {path: '/'});

            this.route('postsList', {path: '/List',
            data: {
                posts: function () {
                return Posts.find({}, {sort: {submitted: -1}});
              }
            }});

            this.route('postSubmit',{
                path:'/submit'
            });
            this.route('yourPosts',{
                path:'/yourposts'
            });
            this.route('officialPosts',{
                path:'/featured'
            });
            this.route('postEdit', {
            path: '/posts/:_id/edit',
            data: function() { return Posts.findOne(this.params._id); }
          });
        });

        var requireLogin = function(){
            if(! Meteor.user()){
                this.render('accessDenied');
                this.stop();
            }
        };

        Router.before(requireLogin, {only: ['postSubmit','postsList','yourPosts','officialPosts','postEdit']});

该网站也可在fed.meteor.com访问。

先谢谢。

1 个答案:

答案 0 :(得分:1)

你有一个javascript错误,你可以在js控制台中看到它Uncaught TypeError: Object #<Object> has no method 'describe'

在生产模式下,文件被连接起来,所以当你有这样的错误时,它下面的代码根本不会执行。所以Posts没有定义。

您仍然在本地出现错误,但文件没有连接在一起,因此一个错误不会影响其他文件,错误也不会那么明显。

您必须修复其他错误才能运行其余代码。

不错的网站顺便说一句。