Я только что начал небольшой проект на Метеор, имея пару месяцев опыта работы с ним. Я создал коллекцию под названием «Реакции» и импортировал данные csv в MongoDB.Запрос коллекции Meteor (работает на локальном хосте, сбой на сервере)
Теперь, когда я запрашиваю его с localhost (win 7), я получил набор записей, как и ожидалось, но как только я запрошу его с удаленного сервера, у меня есть набор emty.
Как представляется, проблема синхронизации подписки, так как коллекция содержит около 10 тыс. Записей, я добавил предложение waitOn на маршрут Iron Router, но это не помогло.
Я искал похожие проблемы здесь и там, и большинство предложенных waitOn, поэтому у меня закончились идеи.
Пожалуйста, см ниже соответствующие части коды и спасибо заранее за любые подсказки
----------/both/collections/Reaction.js ---------------- Reactions = new Mongo.Collection('reactions', { idGeneration : 'MONGO'}); ----------/server/publications.js ---------------- Meteor.publish('reactions', function() { return Reactions.find(); }); ----------/client/views/subscriptions.js ---------------- Meteor.subscribe('reactions', function() { return Reactions.find(); }); ----------/both/lib/router.js ---------------- this.route('reactions', { where: 'server', waitOn: function() { return Meteor.subscribe('reactions'); }, action: function() { var action = this.request.body.action; var reactions = Reactions.find({ action: action }).fetch(); console.log('reactions.length = ' + reactions.length);
Мишель, спасибо, но я забыл дать полную картину проекта. Существует андроид приложение qurying метеор/монго. Вот почему этот маршрут должен быть на сервере, а макет не нужен. Теперь я вижу, что условие waitOn не имеет смысла, поскольку подписка не является серверной. В любом случае, маршрут, похоже, работает как на localhost, я получаю правильный набор записей. Единственная часть, которую я пропускаю, является причиной сбоя на стороне сервера – user3312060