2015-06-24 4 views
0

im new to Nodejs/Meteor and Mongodb. им с этой проблемой, которую я не могу получить мои данные, когда я пытаюсь использовать публикации и подписки в метеораМетеор опубликовать недействительный вывод

Библиотека/collection.js

Reports = new Meteor.Collection('reports'); 

Библиотека/routes.js

Router.map(function() { 
    this.route('dashboard', { 
    path: '/dashboard', 
    waitOn: function() { 
     return Meteor.subscribe('reports-limit', {limit: 5}); 
    }, 
    data: { 
     title:'Dashboard', 
     reports: function(){ 
     console.log(Reports.find({})); 
     return Reports.find({}); 
     } 
    }, 
    action: function() { 
     if (this.ready()) { 
     this.render(); 
     } 
    } 
    }); //end this.route 
});//end Router map 

сервер/publisher.js

Meteor.publish('reports-limit', function(option){ 
    var limit = options.limit; 
    return Meteor.reports.find({}, {sort: {date: -1}, limit: limit}); 
}); 

клиент/шаблон/dashboard.html

<Template name="dashboard"> 
    <div class="content"> 
    {{title}} 
    <ul> 
     {{#each reports}} 
     <li>{{_id}}</li> 
     {{/each}} 
    </ul> 
    </div> 
</Template> 

Я не получаю дисплей в ид и console.log() дает мне

L…n.Cursor {collection: LocalCollection, sorter: null, _selectorId: undefined, matcher: M…o.Matcher, skip: undefined…} 

в результате

это пакеты, установленные я

$ meteor list 
accounts-facebook      1.0.4 Login service for Facebook accounts 
bootstrap        1.0.1 Front-end framework from Twitter 
iron:router       1.0.9 Routing specifically designed for Meteor 
meteor-platform      1.2.2 Include a standard set of Meteor packages in your app 
monbro:mongodb-mapreduce-aggregation 1.0.1 Expose mongodb aggregation framework (mapReduce, aggregate and distinct), to SERVER si... 
service-configuration     1.0.4 Manage the configuration for third-party services 

Я не уверен, что я пропал без вести и что я сделал неправильно.

+0

Это 'waitOn', а не' onWait' И ему нужно вернуть подписку: https://github.com/iron-meteor/iron-router/blob/devel/Guide.md#the-waiton-option – fuzzybabybunny

+0

На самом деле, ваш код неправильный. Я настоятельно рекомендую дать руководство Iron Router прочитать https://github.com/iron-meteor/iron-router/blob/devel/Guide.md, а также следовать в книге Discover Meteor Book - https: // www .discovermeteor.com/ – fuzzybabybunny

+0

@fuzzybabybunny спасибо, обновил мой код, я выгляжу так, как будто он не решил мою проблему. он по-прежнему дает мне тот же результат –

ответ

0

Как только вы назовете коллекцию с глобальной переменной, например. Reports = new Meteor.Collection('reports');, вы должны использовать этот глобальный доступ для сбора как на сервере, так и на стороне клиента.

Так что return Meteor.reports.find(); в вашей публикации не так. Его следует читать:

return Reports.find(); 

Остальная часть запроса выглядит нормально.

Смежные вопросы